diff --git a/README.md b/README.md
index 3d95cd0..c4cb036 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,5 @@
### 关于项目
-- 项目名称 `efo` 是 `Easy File Online` 的缩写,字面意思就是让您轻松实现线上文件管理
-
-- 本系统具有文件分享的功能,权限控制和自定义配置都很强大(可能还不完善)
-
- 系统后端框架有Spring Boot,Spring, SpringMVC,MyBatis; 前段框架有Bootstrap,Jquery, Layer, Vue。项目完全纯注解,零XML配置。
> 第一次运行系统,请先运行 [SQL代码](/mysql/efo.sql) , 并登陆系统修改用户 `system` (默认密码 `123456`)的密码
@@ -16,26 +12,24 @@
### 系统部分截图(背景图片可通过配置设置)
-- 登录页面(包含登录、注册、密码重置),路径 `/signin`
+- 登录页面(包含登录、注册、密码重置),路径 `/signin`
- 
- 资源首页,路径 `/index`
- 
+
- 上传页面,路径 `/upload`
- 
+
- 管理员管理页面,路径 `/admin`
- 
+
- 远程文件管理(管理服务器端所有文件,只有系统用户才能进入此页面),路径 `/filemanager`
- 
> 此功能基于 [angular-filamanager](https://github.com/joni2back/angular-filemanager) 实现
-**项目有不足的地方欢迎提出来哦,大家一起交流学习,觉得不错的话,Star来一个呗**
+
diff --git a/pom.xml b/pom.xml
index cc6f457..f9d0214 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,11 +4,11 @@
4.0.0
com.mesasoft.cn
- webskt-query-agent
- 1.0
+ webskt
+ 1.2
jar
- webskt-query-agent
+ webskt
简单的线上文件管理系统
@@ -76,6 +76,7 @@
org.springframework.boot
spring-boot-devtools
runtime
+ true
mysql
@@ -117,14 +118,27 @@
com.alibaba
- druid
- 1.0.9
+ druid-spring-boot-starter
+ 1.2.6
org.springframework.boot
spring-boot-configuration-processor
true
+
+
+
+
+ me.geso
+ jdbcutils
+ 1.0.0
+
+
+ cn.hutool
+ hutool-all
+ 5.7.17
+
@@ -134,7 +148,7 @@
spring-boot-maven-plugin
true
- com.mesasoft.cn.SketchApplication
+ com.mesasoft.cn.WebSketchApplication
@@ -151,7 +165,7 @@
true
- com.mesasoft.cn.SketchApplication
+ com.mesasoft.cn.WebSketchApplication
diff --git a/src/main/java/com/mesasoft/cn/SketchApplication.java b/src/main/java/com/mesasoft/cn/SketchApplication.java
deleted file mode 100644
index 44a3041..0000000
--- a/src/main/java/com/mesasoft/cn/SketchApplication.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.mesasoft.cn;
-
-import com.spring4all.swagger.EnableSwagger2Doc;
-import com.zhazhapan.config.JsonParser;
-import com.mesasoft.cn.config.TokenConfig;
-import com.mesasoft.cn.modules.constant.ConfigConsts;
-import com.mesasoft.cn.modules.constant.DefaultValues;
-import com.zhazhapan.util.FileExecutor;
-import com.zhazhapan.util.MailSender;
-import com.zhazhapan.util.ReflectUtils;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import java.io.IOException;
-import java.util.Hashtable;
-import java.util.List;
-
-/**
- * @author pantao
- */
-@SpringBootApplication
-@EnableSwagger2Doc
-@MapperScan("com.mesasoft.cn.dao")
-@EnableTransactionManagement
-public class SketchApplication {
-
- public static JsonParser settings = new JsonParser();
-
- public static List> controllers;
-
- public static Hashtable tokens;
-
- public static void main(String[] args) throws IOException, ClassNotFoundException {
- settings.setJsonObject(FileExecutor.read(SketchApplication.class.getResourceAsStream(DefaultValues.SETTING_PATH)));
- MailSender.config(settings.getObjectUseEval(ConfigConsts.EMAIL_CONFIG_OF_SETTINGS));
- controllers = ReflectUtils.getClasses(DefaultValues.CONTROLLER_PACKAGE);
- tokens = TokenConfig.loadToken();
- SpringApplication.run(SketchApplication.class, args);
- }
-}
diff --git a/src/main/java/com/mesasoft/cn/config/SettingConfig.java b/src/main/java/com/mesasoft/cn/config/SettingConfig.java
index a78197a..2b00141 100644
--- a/src/main/java/com/mesasoft/cn/config/SettingConfig.java
+++ b/src/main/java/com/mesasoft/cn/config/SettingConfig.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.config;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.mesasoft.cn.util.CommonUtils;
import com.zhazhapan.modules.constant.ValueConsts;
@@ -12,6 +12,8 @@ import org.slf4j.LoggerFactory;
import java.util.Date;
+import static com.mesasoft.cn.WebSketchApplication.settings;
+
/**
* @author pantao
* @since 2018/1/26
@@ -42,14 +44,14 @@ public class SettingConfig {
int[] auth = new int[5];
for (int i = 0; i < ConfigConsts.AUTH_OF_SETTINGS.length; i++) {
String key = jsonPath + ValueConsts.DOT_SIGN + ConfigConsts.AUTH_OF_SETTINGS[i];
- auth[i] = SketchApplication.settings.getBooleanUseEval(key) ? 1 : 0;
+ auth[i] = settings.getBooleanUseEval(key) ? 1 : 0;
}
return auth;
}
public static String getUploadStoragePath() {
String parent = getStoragePath(ConfigConsts.UPLOAD_PATH_OF_SETTING);
- String formatWay = SketchApplication.settings.getStringUseEval(ConfigConsts.UPLOAD_FORM_OF_SETTING);
+ String formatWay = WebSketchApplication.settings.getStringUseEval(ConfigConsts.UPLOAD_FORM_OF_SETTING);
String childPath = ValueConsts.SEPARATOR + Formatter.datetimeToCustomString(new Date(), formatWay);
String path = parent + childPath;
if (!FileExecutor.createFolder(path)) {
@@ -75,7 +77,7 @@ public class SettingConfig {
} else {
path += LINUX;
}
- return CommonUtils.checkPath(SketchApplication.settings.getStringUseEval(path));
+ return CommonUtils.checkPath(WebSketchApplication.settings.getStringUseEval(path));
}
/**
diff --git a/src/main/java/com/mesasoft/cn/config/TokenConfig.java b/src/main/java/com/mesasoft/cn/config/TokenConfig.java
index 7a83572..21221cb 100644
--- a/src/main/java/com/mesasoft/cn/config/TokenConfig.java
+++ b/src/main/java/com/mesasoft/cn/config/TokenConfig.java
@@ -3,7 +3,7 @@ package com.mesasoft.cn.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
@@ -25,20 +25,20 @@ public class TokenConfig {
public static String generateToken(String token, int userId) {
if (Checker.isNotEmpty(token)) {
- SketchApplication.tokens.remove(token);
+ WebSketchApplication.tokens.remove(token);
}
return generateToken(userId);
}
public static String generateToken(int userId) {
String token = RandomUtils.getRandomStringOnlyLetter(ValueConsts.THIRTY_TWO_INT);
- SketchApplication.tokens.put(token, userId);
+ WebSketchApplication.tokens.put(token, userId);
saveToken();
return token;
}
public static void saveToken() {
- String tokens = Formatter.mapToJson(SketchApplication.tokens);
+ String tokens = Formatter.mapToJson(WebSketchApplication.tokens);
try {
FileExecutor.saveFile(SettingConfig.getStoragePath(ConfigConsts.TOKEN_OF_SETTINGS), tokens);
} catch (Exception e) {
@@ -65,14 +65,14 @@ public class TokenConfig {
public static void removeTokenByValue(int userId) {
if (userId > 0) {
String removeKey = "";
- for (String key : SketchApplication.tokens.keySet()) {
- if (SketchApplication.tokens.get(key) == userId) {
+ for (String key : WebSketchApplication.tokens.keySet()) {
+ if (WebSketchApplication.tokens.get(key) == userId) {
removeKey = key;
break;
}
}
if (Checker.isNotEmpty(removeKey)) {
- SketchApplication.tokens.remove(removeKey);
+ WebSketchApplication.tokens.remove(removeKey);
TokenConfig.saveToken();
}
}
diff --git a/src/main/java/com/mesasoft/cn/dao/sqlprovider/AuthSqlProvider.java b/src/main/java/com/mesasoft/cn/dao/sqlprovider/AuthSqlProvider.java
index 3c9c10f..1ba0b2e 100644
--- a/src/main/java/com/mesasoft/cn/dao/sqlprovider/AuthSqlProvider.java
+++ b/src/main/java/com/mesasoft/cn/dao/sqlprovider/AuthSqlProvider.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao.sqlprovider;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.zhazhapan.util.Checker;
import org.apache.ibatis.annotations.Param;
@@ -40,9 +40,9 @@ public class AuthSqlProvider {
} else if (Checker.isNotEmpty(fileName)) {
WHERE("f.local_url like '%" + fileName + "%'");
}
- ORDER_BY("a." + SketchApplication.settings.getStringUseEval(ConfigConsts.AUTH_ORDER_BY_OF_SETTINGS));
+ ORDER_BY("a." + WebSketchApplication.settings.getStringUseEval(ConfigConsts.AUTH_ORDER_BY_OF_SETTINGS));
}}.toString();
- int size = SketchApplication.settings.getIntegerUseEval(ConfigConsts.AUTH_PAGE_SIZE_OF_SETTINGS);
+ int size = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.AUTH_PAGE_SIZE_OF_SETTINGS);
return sql + " limit " + (offset * size) + "," + size;
}
}
diff --git a/src/main/java/com/mesasoft/cn/dao/sqlprovider/DownloadedSqlProvider.java b/src/main/java/com/mesasoft/cn/dao/sqlprovider/DownloadedSqlProvider.java
index 5c1745f..8043b31 100644
--- a/src/main/java/com/mesasoft/cn/dao/sqlprovider/DownloadedSqlProvider.java
+++ b/src/main/java/com/mesasoft/cn/dao/sqlprovider/DownloadedSqlProvider.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao.sqlprovider;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.zhazhapan.util.Checker;
import org.apache.ibatis.annotations.Param;
@@ -40,9 +40,9 @@ public class DownloadedSqlProvider {
if (categoryId > 0) {
WHERE("c.id=#{categoryId}");
}
- ORDER_BY("d." + SketchApplication.settings.getStringUseEval(ConfigConsts.DOWNLOAD_ORDER_BY_OF_SETTINGS));
+ ORDER_BY("d." + WebSketchApplication.settings.getStringUseEval(ConfigConsts.DOWNLOAD_ORDER_BY_OF_SETTINGS));
}}.toString();
- int size = SketchApplication.settings.getIntegerUseEval(ConfigConsts.DOWNLOAD_PAGE_SIZE_OF_SETTINGS);
+ int size = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.DOWNLOAD_PAGE_SIZE_OF_SETTINGS);
return sql + " limit " + (offset * size) + "," + size;
}
}
diff --git a/src/main/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProvider.java b/src/main/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProvider.java
index 8a2ecdc..3ac98bb 100644
--- a/src/main/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProvider.java
+++ b/src/main/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProvider.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao.sqlprovider;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
@@ -46,15 +46,15 @@ public class FileSqlProvider {
if (categoryId > 0) {
WHERE("c.id=#{categoryId}");
}
- ORDER_BY("f." + SketchApplication.settings.getStringUseEval(ConfigConsts.FILE_ORDER_BY_OF_SETTING));
+ ORDER_BY("f." + WebSketchApplication.settings.getStringUseEval(ConfigConsts.FILE_ORDER_BY_OF_SETTING));
}}.toString();
- int size = SketchApplication.settings.getIntegerUseEval(ConfigConsts.FILE_PAGE_SIZE_OF_SETTING);
+ int size = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.FILE_PAGE_SIZE_OF_SETTING);
return sql + " limit " + (offset * size) + "," + size;
}
private String getSqlEnds(int offset, String orderBy, String search) {
- int size = SketchApplication.settings.getIntegerUseEval(ConfigConsts.FILE_PAGE_SIZE_OF_SETTING);
- return getSearch(search) + " order by " + (Checker.isEmpty(orderBy) ? SketchApplication.settings
+ int size = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.FILE_PAGE_SIZE_OF_SETTING);
+ return getSearch(search) + " order by " + (Checker.isEmpty(orderBy) ? WebSketchApplication.settings
.getStringUseEval(ConfigConsts.FILE_ORDER_BY_OF_SETTING) : orderBy) + " limit " + offset * size
+ "," + size;
}
diff --git a/src/main/java/com/mesasoft/cn/dao/sqlprovider/UploadedSqlProvider.java b/src/main/java/com/mesasoft/cn/dao/sqlprovider/UploadedSqlProvider.java
index 720b716..d0d0e78 100644
--- a/src/main/java/com/mesasoft/cn/dao/sqlprovider/UploadedSqlProvider.java
+++ b/src/main/java/com/mesasoft/cn/dao/sqlprovider/UploadedSqlProvider.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao.sqlprovider;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.zhazhapan.util.Checker;
import org.apache.ibatis.annotations.Param;
@@ -39,9 +39,9 @@ public class UploadedSqlProvider {
if (categoryId > 0) {
WHERE("c.id=#{categoryId}");
}
- ORDER_BY("f." + SketchApplication.settings.getStringUseEval(ConfigConsts.FILE_ORDER_BY_OF_SETTING));
+ ORDER_BY("f." + WebSketchApplication.settings.getStringUseEval(ConfigConsts.FILE_ORDER_BY_OF_SETTING));
}}.toString();
- int size = SketchApplication.settings.getIntegerUseEval(ConfigConsts.FILE_PAGE_SIZE_OF_SETTING);
+ int size = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.FILE_PAGE_SIZE_OF_SETTING);
return sql + " limit " + (offset * size) + "," + size;
}
}
diff --git a/src/main/java/com/mesasoft/cn/dao/sqlprovider/UserSqlProvider.java b/src/main/java/com/mesasoft/cn/dao/sqlprovider/UserSqlProvider.java
index 5d36845..eb2849f 100644
--- a/src/main/java/com/mesasoft/cn/dao/sqlprovider/UserSqlProvider.java
+++ b/src/main/java/com/mesasoft/cn/dao/sqlprovider/UserSqlProvider.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao.sqlprovider;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.mesasoft.cn.modules.constant.DefaultValues;
import com.zhazhapan.util.Checker;
@@ -33,9 +33,9 @@ public class UserSqlProvider {
WHERE("username like '%" + condition + "%' or email like '%" + condition + "%' or real_name like '" +
condition + "'");
}
- ORDER_BY(SketchApplication.settings.getStringUseEval(ConfigConsts.USER_ORDER_BY_OF_SETTINGS));
+ ORDER_BY(WebSketchApplication.settings.getStringUseEval(ConfigConsts.USER_ORDER_BY_OF_SETTINGS));
}}.toString();
- int size = SketchApplication.settings.getIntegerUseEval(ConfigConsts.USER_PAGE_SIZE_OF_SETTINGS);
+ int size = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.USER_PAGE_SIZE_OF_SETTINGS);
return sql + " limit " + (offset * size) + "," + size;
}
}
diff --git a/src/main/java/com/mesasoft/cn/exception/GlobalExceptionHandler.java b/src/main/java/com/mesasoft/cn/exception/GlobalExceptionHandler.java
index 7c21c36..0ec6e0f 100644
--- a/src/main/java/com/mesasoft/cn/exception/GlobalExceptionHandler.java
+++ b/src/main/java/com/mesasoft/cn/exception/GlobalExceptionHandler.java
@@ -1,7 +1,6 @@
package com.mesasoft.cn.exception;
import com.alibaba.fastjson.support.spring.FastJsonJsonView;
-import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
import org.springframework.http.HttpStatus;
import org.springframework.web.servlet.HandlerExceptionResolver;
@@ -23,9 +22,9 @@ public class GlobalExceptionHandler implements HandlerExceptionResolver {
Exception ex) {
ModelAndView mv = new ModelAndView();
FastJsonJsonView view = new FastJsonJsonView();
- Map attributes = new HashMap<>(ValueConsts.TWO_INT);
+ Map attributes = new HashMap<>();
attributes.put("code", "502");
- attributes.put("message", ex.getMessage());
+ attributes.put("message", "request error "+ (Checker.isEmpty(ex.getMessage())||ex.getMessage()=="null"?ex.getCause():ex.getMessage()));
String queryString = request.getQueryString();
attributes.put("url", request.getRequestURI() + (Checker.isEmpty(queryString) ? "" : "?" + queryString));
view.setAttributesMap(attributes);
diff --git a/src/main/java/com/mesasoft/cn/interceptor/WebInterceptor.java b/src/main/java/com/mesasoft/cn/interceptor/WebInterceptor.java
index 50e16f1..ecc859f 100644
--- a/src/main/java/com/mesasoft/cn/interceptor/WebInterceptor.java
+++ b/src/main/java/com/mesasoft/cn/interceptor/WebInterceptor.java
@@ -1,11 +1,11 @@
package com.mesasoft.cn.interceptor;
-import com.mesasoft.cn.SketchApplication;
-import com.mesasoft.cn.modules.constant.DefaultValues;
-import com.mesasoft.cn.service.impl.UserServiceImpl;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.annotation.AuthInterceptor;
import com.mesasoft.cn.entity.User;
import com.mesasoft.cn.enums.InterceptorLevel;
+import com.mesasoft.cn.modules.constant.DefaultValues;
+import com.mesasoft.cn.service.impl.UserServiceImpl;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
import com.zhazhapan.util.HttpUtils;
@@ -36,7 +36,7 @@ public class WebInterceptor implements HandlerInterceptor {
AuthInterceptor interceptor = ((HandlerMethod) handler).getMethodAnnotation(AuthInterceptor.class);
//注解到类上面的注解,无法直接获取,只能通过扫描
if (Checker.isNull(interceptor)) {
- for (Class> type : SketchApplication.controllers) {
+ for (Class> type : WebSketchApplication.controllers) {
RequestMapping mapping = type.getAnnotation(RequestMapping.class);
if (Checker.isNotNull(mapping)) {
for (String path : mapping.value()) {
diff --git a/src/main/java/com/mesasoft/cn/modules/constant/DefaultValues.java b/src/main/java/com/mesasoft/cn/modules/constant/DefaultValues.java
index 76de50b..664dc59 100644
--- a/src/main/java/com/mesasoft/cn/modules/constant/DefaultValues.java
+++ b/src/main/java/com/mesasoft/cn/modules/constant/DefaultValues.java
@@ -1,5 +1,6 @@
package com.mesasoft.cn.modules.constant;
+
import com.zhazhapan.modules.constant.ValueConsts;
/**
@@ -21,7 +22,7 @@ public class DefaultValues {
/**
* Controller包路径
*/
- public static final String CONTROLLER_PACKAGE = "com.zhazhapan.efo.web.controller";
+ public static final String CONTROLLER_PACKAGE = "com.mesasoft.cn.web.controller";
/**
* 配置文件路径
diff --git a/src/main/java/com/mesasoft/cn/service/impl/AuthServiceImpl.java b/src/main/java/com/mesasoft/cn/service/impl/AuthServiceImpl.java
index d4d0e53..3e7416b 100644
--- a/src/main/java/com/mesasoft/cn/service/impl/AuthServiceImpl.java
+++ b/src/main/java/com/mesasoft/cn/service/impl/AuthServiceImpl.java
@@ -1,12 +1,12 @@
package com.mesasoft.cn.service.impl;
-import com.mesasoft.cn.dao.AuthDAO;
-import com.mesasoft.cn.util.BeanUtils;
import com.mesasoft.cn.config.SettingConfig;
+import com.mesasoft.cn.dao.AuthDAO;
import com.mesasoft.cn.entity.Auth;
import com.mesasoft.cn.model.AuthRecord;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.mesasoft.cn.service.IAuthService;
+import com.mesasoft.cn.util.BeanUtils;
import com.mesasoft.cn.util.ServiceUtils;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
diff --git a/src/main/java/com/mesasoft/cn/service/impl/CommonServiceImpl.java b/src/main/java/com/mesasoft/cn/service/impl/CommonServiceImpl.java
index 05f1d10..bcd24dc 100644
--- a/src/main/java/com/mesasoft/cn/service/impl/CommonServiceImpl.java
+++ b/src/main/java/com/mesasoft/cn/service/impl/CommonServiceImpl.java
@@ -1,7 +1,7 @@
package com.mesasoft.cn.service.impl;
-import com.mesasoft.cn.modules.constant.DefaultValues;
import com.mesasoft.cn.config.SettingConfig;
+import com.mesasoft.cn.modules.constant.DefaultValues;
import com.mesasoft.cn.service.ICommonService;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
diff --git a/src/main/java/com/mesasoft/cn/service/impl/ConfigServiceImpl.java b/src/main/java/com/mesasoft/cn/service/impl/ConfigServiceImpl.java
index 1de92b2..2e00811 100644
--- a/src/main/java/com/mesasoft/cn/service/impl/ConfigServiceImpl.java
+++ b/src/main/java/com/mesasoft/cn/service/impl/ConfigServiceImpl.java
@@ -1,7 +1,7 @@
package com.mesasoft.cn.service.impl;
import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.mesasoft.cn.service.IConfigService;
import org.springframework.stereotype.Service;
@@ -15,7 +15,7 @@ public class ConfigServiceImpl implements IConfigService {
@Override
public String getGlobalConfig() {
- JSONObject jsonObject = (JSONObject) SketchApplication.settings.getObjectUseEval(ConfigConsts
+ JSONObject jsonObject = (JSONObject) WebSketchApplication.settings.getObjectUseEval(ConfigConsts
.GLOBAL_OF_SETTINGS).clone();
jsonObject.remove(ConfigConsts.UPLOAD_PATH_OF_GLOBAL);
jsonObject.remove(ConfigConsts.TOKEN_PATH_OF_GLOBAL);
@@ -25,7 +25,7 @@ public class ConfigServiceImpl implements IConfigService {
@Override
public String getUserConfig() {
- JSONObject jsonObject = (JSONObject) SketchApplication.settings.getObjectUseEval(ConfigConsts.USER_OF_SETTINGS)
+ JSONObject jsonObject = (JSONObject) WebSketchApplication.settings.getObjectUseEval(ConfigConsts.USER_OF_SETTINGS)
.clone();
jsonObject.remove(ConfigConsts.EMAIL_CONFIG_OF_USER);
return jsonObject.toString();
diff --git a/src/main/java/com/mesasoft/cn/service/impl/FileServiceImpl.java b/src/main/java/com/mesasoft/cn/service/impl/FileServiceImpl.java
index 2c6e6e9..527cc5a 100644
--- a/src/main/java/com/mesasoft/cn/service/impl/FileServiceImpl.java
+++ b/src/main/java/com/mesasoft/cn/service/impl/FileServiceImpl.java
@@ -1,10 +1,9 @@
package com.mesasoft.cn.service.impl;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
+import com.mesasoft.cn.config.SettingConfig;
import com.mesasoft.cn.dao.DownloadedDAO;
import com.mesasoft.cn.dao.FileDAO;
-import com.mesasoft.cn.util.BeanUtils;
-import com.mesasoft.cn.config.SettingConfig;
import com.mesasoft.cn.entity.Category;
import com.mesasoft.cn.entity.File;
import com.mesasoft.cn.entity.User;
@@ -17,6 +16,7 @@ import com.mesasoft.cn.modules.constant.DefaultValues;
import com.mesasoft.cn.service.IAuthService;
import com.mesasoft.cn.service.ICategoryService;
import com.mesasoft.cn.service.IFileService;
+import com.mesasoft.cn.util.BeanUtils;
import com.mesasoft.cn.util.ServiceUtils;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.*;
@@ -134,7 +134,7 @@ public class FileServiceImpl implements IFileService {
AuthRecord authRecord = authService.getByFileIdAndUserId(id, user.getId());
String suffix = FileExecutor.getFileSuffix(name);
boolean canUpdate = (Checker.isNull(authRecord) ? user.getIsUpdatable() == 1 :
- authRecord.getIsUpdatable() == 1) && Checker.isNotEmpty(name) && Pattern.compile(SketchApplication.settings.getStringUseEval(ConfigConsts.FILE_SUFFIX_MATCH_OF_SETTING)).matcher(suffix).matches();
+ authRecord.getIsUpdatable() == 1) && Checker.isNotEmpty(name) && Pattern.compile(WebSketchApplication.settings.getStringUseEval(ConfigConsts.FILE_SUFFIX_MATCH_OF_SETTING)).matcher(suffix).matches();
if (canUpdate) {
String localUrl = file.getLocalUrl();
java.io.File newFile = new java.io.File(localUrl);
@@ -208,7 +208,7 @@ public class FileServiceImpl implements IFileService {
@Override
public String getResource(String visitUrl, HttpServletRequest request) {
logger.info("visit url: " + visitUrl);
- boolean downloadable = SketchApplication.settings.getBooleanUseEval(ConfigConsts
+ boolean downloadable = WebSketchApplication.settings.getBooleanUseEval(ConfigConsts
.ANONYMOUS_DOWNLOADABLE_OF_SETTING);
User user = (User) request.getSession().getAttribute(ValueConsts.USER_STRING);
File file = fileDAO.getFileByVisitUrl(visitUrl);
@@ -249,15 +249,15 @@ public class FileServiceImpl implements IFileService {
String suffix = FileExecutor.getFileSuffix(name);
String localUrl = SettingConfig.getUploadStoragePath() + ValueConsts.SEPARATOR + name;
Category category = categoryService.getById(categoryId);
- long maxSize = Formatter.sizeToLong(SketchApplication.settings.getStringUseEval(ConfigConsts
+ long maxSize = Formatter.sizeToLong(WebSketchApplication.settings.getStringUseEval(ConfigConsts
.FILE_MAX_SIZE_OF_SETTING));
long size = multipartFile.getSize();
boolean fileExists = localUrlExists(localUrl);
//检测标签是否合法
- if (SketchApplication.settings.getBooleanUseEval(ConfigConsts.TAG_REQUIRE_OF_SETTING)) {
+ if (WebSketchApplication.settings.getBooleanUseEval(ConfigConsts.TAG_REQUIRE_OF_SETTING)) {
String[] tags = Checker.checkNull(tag).split(ValueConsts.SPACE);
- if (tags.length <= SketchApplication.settings.getIntegerUseEval(ConfigConsts.TAG_SIZE_OF_SETTING)) {
- int maxLength = SketchApplication.settings.getIntegerUseEval(ConfigConsts.TAG_LENGTH_OF_SETTING);
+ if (tags.length <= WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.TAG_SIZE_OF_SETTING)) {
+ int maxLength = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.TAG_LENGTH_OF_SETTING);
for (String t : tags) {
if (t.length() > maxLength) {
return false;
@@ -268,15 +268,15 @@ public class FileServiceImpl implements IFileService {
}
}
//是否可以上传
- boolean canUpload = !multipartFile.isEmpty() && size <= maxSize && Pattern.compile(SketchApplication
+ boolean canUpload = !multipartFile.isEmpty() && size <= maxSize && Pattern.compile(WebSketchApplication
.settings.getStringUseEval(ConfigConsts.FILE_SUFFIX_MATCH_OF_SETTING)).matcher(suffix).matches()
- && (Checker.isNotExists(localUrl) || !fileExists || SketchApplication.settings.getBooleanUseEval
+ && (Checker.isNotExists(localUrl) || !fileExists || WebSketchApplication.settings.getBooleanUseEval
(ConfigConsts.FILE_COVER_OF_SETTING));
logger.info("is empty [" + multipartFile.isEmpty() + "], file size [" + size + "], max file size [" +
maxSize + "]");
if (canUpload) {
String visitUrl = getRegularVisitUrl(Checker.isNotEmpty(prefix) && user.getPermission() > 1 ? prefix
- : SketchApplication.settings.getStringUseEval(ConfigConsts.CUSTOM_LINK_RULE_OF_SETTING), user,
+ : WebSketchApplication.settings.getStringUseEval(ConfigConsts.CUSTOM_LINK_RULE_OF_SETTING), user,
name, suffix, category);
if (fileExists) {
removeByLocalUrl(localUrl);
diff --git a/src/main/java/com/mesasoft/cn/service/impl/UserServiceImpl.java b/src/main/java/com/mesasoft/cn/service/impl/UserServiceImpl.java
index 8974f95..0f9491a 100644
--- a/src/main/java/com/mesasoft/cn/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/mesasoft/cn/service/impl/UserServiceImpl.java
@@ -1,13 +1,13 @@
package com.mesasoft.cn.service.impl;
-import com.mesasoft.cn.SketchApplication;
-import com.mesasoft.cn.dao.UserDAO;
-import com.mesasoft.cn.util.BeanUtils;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.config.SettingConfig;
import com.mesasoft.cn.config.TokenConfig;
+import com.mesasoft.cn.dao.UserDAO;
import com.mesasoft.cn.entity.User;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.mesasoft.cn.service.IUserService;
+import com.mesasoft.cn.util.BeanUtils;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
import com.zhazhapan.util.DateUtils;
@@ -67,11 +67,11 @@ public class UserServiceImpl implements IUserService {
@Override
public User login(String loginName, String password, String token, HttpServletResponse response) {
- boolean allowLogin = SketchApplication.settings.getBooleanUseEval(ConfigConsts.ALLOW_LOGIN_OF_SETTINGS);
+ boolean allowLogin = WebSketchApplication.settings.getBooleanUseEval(ConfigConsts.ALLOW_LOGIN_OF_SETTINGS);
User user = null;
if (allowLogin) {
- if (Checker.isNotEmpty(token) && SketchApplication.tokens.containsKey(token)) {
- user = userDAO.getUserById(SketchApplication.tokens.get(token));
+ if (Checker.isNotEmpty(token) && WebSketchApplication.tokens.containsKey(token)) {
+ user = userDAO.getUserById(WebSketchApplication.tokens.get(token));
if (Checker.isNotNull(response)) {
Cookie cookie = new Cookie(ValueConsts.TOKEN_STRING, TokenConfig.generateToken(token, user.getId
()));
@@ -92,9 +92,9 @@ public class UserServiceImpl implements IUserService {
@Override
public boolean register(String username, String email, String password) {
- boolean allowRegister = SketchApplication.settings.getBooleanUseEval(ConfigConsts.ALLOW_REGISTER_OF_SETTINGS);
+ boolean allowRegister = WebSketchApplication.settings.getBooleanUseEval(ConfigConsts.ALLOW_REGISTER_OF_SETTINGS);
if (allowRegister) {
- boolean isValid = Checker.isEmail(email) && checkPassword(password) && Pattern.compile(SketchApplication.settings
+ boolean isValid = Checker.isEmail(email) && checkPassword(password) && Pattern.compile(WebSketchApplication.settings
.getStringUseEval(ConfigConsts.USERNAME_PATTERN_OF_SETTINGS)).matcher(username).matches();
if (isValid) {
User user = new User(username, ValueConsts.EMPTY_STRING, email, password);
@@ -113,8 +113,8 @@ public class UserServiceImpl implements IUserService {
@Override
public boolean checkPassword(String password) {
- int min = SketchApplication.settings.getIntegerUseEval(ConfigConsts.PASSWORD_MIN_LENGTH_OF_SETTINGS);
- int max = SketchApplication.settings.getIntegerUseEval(ConfigConsts.PASSWORD_MAX_LENGTH_OF_SETTINGS);
+ int min = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.PASSWORD_MIN_LENGTH_OF_SETTINGS);
+ int max = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.PASSWORD_MAX_LENGTH_OF_SETTINGS);
return Checker.isLimited(password, min, max);
}
diff --git a/src/main/java/com/mesasoft/cn/sketch/api/BrightCloud.java b/src/main/java/com/mesasoft/cn/sketch/api/BrightCloud.java
index 3a51220..05c5017 100644
--- a/src/main/java/com/mesasoft/cn/sketch/api/BrightCloud.java
+++ b/src/main/java/com/mesasoft/cn/sketch/api/BrightCloud.java
@@ -1,13 +1,14 @@
package com.mesasoft.cn.sketch.api;
+import cn.hutool.log.Log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.sketch.config.ApplicationConfig;
-import com.mesasoft.cn.sketch.entity.DomainCategory;
-import com.mesasoft.cn.util.FileUtils;
-import com.mesasoft.cn.util.ValidationUtils;
-import org.apache.log4j.Logger;
+import com.mesasoft.cn.sketch.config.BrightCloudConfig;
+import com.mesasoft.cn.sketch.entity.domain.DomainCategory;
+import com.mesasoft.cn.sketch.util.FileUtils;
+import com.mesasoft.cn.sketch.util.ValidationUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import java.io.*;
import java.net.HttpURLConnection;
@@ -22,43 +23,44 @@ import java.util.*;
*/
public class BrightCloud {
- private static final Logger LOG = Logger.getLogger(BrightCloud.class);
+ private static final Log logger = Log.get();
- private final Integer maxObjectNum = ApplicationConfig.API_BC_MAXIMUM_QUERYNUM;
private final HashMap> catId2Info = new HashMap<>();
private HttpURLConnection con;
- public List getQueryFiles(List domains){
+ @Autowired
+ private BrightCloudConfig bcConfig;
+
+ public List getBrightCloudDomains(List domains) {
JSONObject queryResults = getQueryResults(domains);
return responseSparse(queryResults);
}
// 获取json格式查询结果
public JSONObject getQueryResults(List domains) {
- if (domains.size()> ApplicationConfig.API_BC_MAXIMUM_QUERYNUM){
- LOG.warn("Too many domains in a http post request, the number of fqdn/url should be no more than "
- + ApplicationConfig.API_BC_MAXIMUM_QUERYNUM + "!");
+ if (domains.size() > bcConfig.getMaximumQueryNum()) {
+ logger.warn("Too many domains in a http post request, the number of fqdn/url should be no more than "
+ + bcConfig.getMaximumQueryNum() + "!");
}
JSONObject jsonRes = new JSONObject();
try {
- URL url = new URL(ApplicationConfig.API_BC_URL);
+ URL url = new URL(bcConfig.getUrl());
con = (HttpURLConnection) url.openConnection();
- con.setRequestMethod(ApplicationConfig.API_BC_METHOD);
+ con.setRequestMethod(bcConfig.getMethod());
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-Type", "application/json");
JSONObject param = new JSONObject();
- param.put("oemid", ApplicationConfig.API_BC_OEMID);
- param.put("deviceid", ApplicationConfig.API_BC_DEVICEID);
- param.put("uid", ApplicationConfig.API_BC_UID);
-
- param.put("queries", Collections.singletonList(ApplicationConfig.API_BC_QUERYTYPE));
- param.put("a1cat", ApplicationConfig.API_BC_ISA1CAT);
- param.put("reputation", ApplicationConfig.API_BC_ISREPU);
- param.put("xml", ApplicationConfig.API_BC_ISXML); // json or xml格式
-
+ param.put("oemid", bcConfig.getOemid());
+ param.put("deviceid", bcConfig.getDeviceid());
+ param.put("uid", bcConfig.getUid());
+ param.put("queries", Collections.singletonList(bcConfig.getQueryType()));
+ param.put("a1cat", bcConfig.getIsa1cat());
+ param.put("reputation", bcConfig.getIsReputation());
+ // json or xml格式
+ param.put("xml", bcConfig.getIsxml());
param.put("urls", domains);
//建立实际的连接
@@ -67,7 +69,7 @@ public class BrightCloud {
writer.write(param.toString());
writer.flush();
} catch (IOException e) {
- e.printStackTrace();
+ logger.error(e);
}
try {
@@ -85,19 +87,19 @@ public class BrightCloud {
jsonRes = JSONObject.parseObject(sbf.toString());
con.disconnect();
} catch (IOException e) {
- e.printStackTrace();
+ logger.error(e);
}
return jsonRes;
}
// json响应内容解析
- public List responseSparse(JSONObject records){
+ public List responseSparse(JSONObject records) {
List domainFiles = new ArrayList<>();
Boolean querySucess = records.get("status").equals(200);
if (!querySucess) {
- System.out.print(records);
- LOG.error("Wrong query. Query type: " + records.get("type"));
+ logger.error(JSON.toJSONString(records));
+ logger.error("Wrong query. Query type: " + records.get("type"));
} else {
JSONArray array = records.getJSONArray("results");
for (int i = 0; i < array.size(); i++) {
@@ -105,7 +107,7 @@ public class BrightCloud {
// json处理
JSONObject queries = jo.getJSONObject("queries");
- JSONObject getInfo = queries.getJSONObject(ApplicationConfig.API_BC_QUERYTYPE);
+ JSONObject getInfo = queries.getJSONObject(bcConfig.getQueryType());
JSONObject cat = getInfo.getJSONArray("cats").getJSONObject(0);
Integer catId = cat.getInteger("catid");
@@ -127,67 +129,61 @@ public class BrightCloud {
return domainFiles;
}
- private String getRepLevel(Integer repScore){
+ private String getRepLevel(Integer repScore) {
String level = null; //用str存放数据
- if (repScore > 80){ level="Trustworthy";}
- else if (repScore > 60){ level="Low Risk";}
- else if (repScore > 40){ level="Moderate Risk";}
- else if (repScore > 20){ level="Suspicious";}
- else if (repScore > 0){ level="High Risk";}
+ if (repScore > 80) {
+ level = "Trustworthy";
+ } else if (repScore > 60) {
+ level = "Low Risk";
+ } else if (repScore > 40) {
+ level = "Moderate Risk";
+ } else if (repScore > 20) {
+ level = "Suspicious";
+ } else if (repScore > 0) {
+ level = "High Risk";
+ }
return level;
}
// 获取类别id对应信息
- public void geneCatInfo(){
- if (catId2Info.size()==0){
+ public void geneCatInfo() {
+ if (catId2Info.size() == 0) {
JSONObject jsonObject;
-// String filePath = Objects.requireNonNull(BrightCloud.class.getClassLoader()
-// .getResource(ApplicationConfig.API_BC_CATEINFO_FILE)).getFile();
- String filePath =ApplicationConfig.API_BC_CATEINFO_FILE;
- String s = FileUtils.readJsonFile(filePath);
+ String s = FileUtils.readJsonFile(bcConfig.getCateinfoFilepath());
jsonObject = JSON.parseObject(s);
- if (!(jsonObject==null)){
+ if (!(jsonObject == null)) {
JSONObject tmp = (JSONObject) jsonObject.getJSONArray("results").get(0);
JSONArray catInfoArray = tmp.getJSONObject("queries").getJSONObject("getcatlist").getJSONArray("cats");
- for (int i = 0; i < catInfoArray.size(); i++){
+ for (int i = 0; i < catInfoArray.size(); i++) {
JSONObject keyObject = catInfoArray.getJSONObject(i);
List value = new ArrayList<>(Arrays.asList(
keyObject.getString("catname"),
keyObject.getString("catgroup")));
- catId2Info.put(i+1, value);
+ catId2Info.put(i + 1, value);
}
}
}
}
- public List getCatInfo(Integer catId){
+ public List getCatInfo(Integer catId) {
List info = Arrays.asList("", "");
if (0 < catId && catId <= 83) {
- if (catId2Info.size()==0){
+ if (catId2Info.size() == 0) {
geneCatInfo();
}
info = catId2Info.get(catId);
- if (info == null){
- LOG.error("Failed at geneCatInfo function");
- System.out.print("Failed at geneCatInfo function");
+ if (info == null) {
+ logger.error("Failed at geneCatInfo function");
}
}
return info;
}
- public Integer getMaxObjectNum() {
- return maxObjectNum;
- }
-
- public static void main(String[] args) {
- JSONObject queryResults = new BrightCloud().getQueryResults(Arrays.asList("baidu.com"));
- new BrightCloud().responseSparse(queryResults);
- }
}
diff --git a/src/main/java/com/mesasoft/cn/sketch/api/ChinaZ.java b/src/main/java/com/mesasoft/cn/sketch/api/ChinaZ.java
index 1c75093..78f308e 100644
--- a/src/main/java/com/mesasoft/cn/sketch/api/ChinaZ.java
+++ b/src/main/java/com/mesasoft/cn/sketch/api/ChinaZ.java
@@ -1,16 +1,10 @@
package com.mesasoft.cn.sketch.api;
-/*
- * @Description:
- * @Author: chenxu
- * @Date: 2021-12-27 13:59:29
- * @LastEditTime: 2021-12-29 17:05:45
- * @LastEditors: chenxu
- */
+import cn.hutool.log.Log;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.sketch.config.ApplicationConfig;
-import com.mesasoft.cn.sketch.entity.DomainWhois;
+import com.mesasoft.cn.sketch.config.ChinazConfig;
+import com.mesasoft.cn.sketch.entity.domain.DomainWhois;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
@@ -18,7 +12,7 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
-import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
import java.io.BufferedReader;
import java.io.InputStream;
@@ -29,11 +23,20 @@ import java.sql.Date;
import java.util.*;
import java.util.concurrent.TimeUnit;
+/*
+ * @Description:
+ * @Author: chenxu
+ * @Date: 2021-12-27 13:59:29
+ * @LastEditTime: 2021-12-29 17:05:45
+ * @LastEditors: chenxu
+ */
public class ChinaZ {
- private static final Logger LOG = Logger.getLogger(ChinaZ.class);
- private final String apiKey = ApplicationConfig.API_CHINAZ_KEY;
+ private static final Log logger = Log.get();
- public List getQueryFiles(List objectList) {
+ @Autowired
+ private ChinazConfig chinazConfig;
+
+ public List getChinaZDomains(List objectList) {
List queryResults = getQueryResults(objectList);
return responseSparse(queryResults);
}
@@ -43,12 +46,12 @@ public class ChinaZ {
* @Param : 域名
* @Return: 查询结果
*/
- public JSONObject getQueryResult(String domain){
- String urlString = ApplicationConfig.API_CHINAZ_URL_SINGLE;
- Map params = new LinkedHashMap();
- params.put("key", apiKey);
+ public JSONObject getQueryResult(String domain) {
+ String urlString = chinazConfig.getUrlSingle();
+ Map params = new LinkedHashMap();
+ params.put("key", chinazConfig.getKey());
params.put("domain", domain);
- return whoisInfoResolve(doPost(urlString, params),domain);
+ return whoisInfoResolve(doPost(urlString, params), domain);
}
/**
@@ -56,43 +59,42 @@ public class ChinaZ {
* @Param : 域名
* @Return: 查询结果
*/
- public List getQueryResults(List domainList){
- String urlString = ApplicationConfig.API_CHINAZ_URL_SINGLE;
+ public List getQueryResults(List domainList) {
List whoisInfoList = new ArrayList<>();
for (String s : domainList) {
Map params = new LinkedHashMap();
- params.put("key", apiKey);
+ params.put("key", chinazConfig.getKey());
params.put("domain", s);
- JSONObject r = doPost(urlString, params);
+ JSONObject r = doPost(chinazConfig.getUrlSingle(), params);
whoisInfoList.add(whoisInfoResolve(r, s));
}
- return whoisInfoList;
+ return whoisInfoList;
}
- public List responseSparse(List records){
+ public List responseSparse(List records) {
List whoisFiles = new ArrayList<>();
- for(JSONObject record: records) {
+ for (JSONObject record : records) {
Boolean querySucess = record.getBoolean("isSuccess");
if (!querySucess) {
- LOG.error("Failed query. Query response: " + record);
+ logger.error("Failed query. Query response: " + record);
break;
}
String fqdn = record.getString("domain_name");
String domainName = record.getString("domain_host");
- Integer matchPattern = fqdn.equals(domainName)? 1 : 2 ;
+ Integer matchPattern = fqdn.equals(domainName) ? 1 : 2;
String source = "chinaz";
// json处理
Date creatDate = null;
Date expiraDate = null;
java.util.Date tmpDate = record.getDate("domain_whois_create_time");
- if(tmpDate!=null){
+ if (tmpDate != null) {
creatDate = new Date(tmpDate.getTime());
}
tmpDate = record.getDate("domain_whois_expiration_time");
- if(tmpDate!=null){
+ if (tmpDate != null) {
expiraDate = new Date(tmpDate.getTime());
}
whoisFiles.add(new DomainWhois(
@@ -119,17 +121,18 @@ public class ChinaZ {
}
return whoisFiles;
}
+
/**
* @Description: 解析并重构JSON串
* @Param : 查询得到的“单个”JSON串
* @Return: 返回重构的JSON串
*/
- public JSONObject whoisInfoResolve(JSONObject jsonRes,String queryDomain){
+ public JSONObject whoisInfoResolve(JSONObject jsonRes, String queryDomain) {
JSONObject whoisInfo = new JSONObject(true);
JSONObject res = jsonRes.getJSONObject("Result");
- if(jsonRes.get("StateCode").equals(1)){
+ if (jsonRes.get("StateCode").equals(1)) {
whoisInfo.put("isSuccess", jsonRes.get("StateCode"));
- whoisInfo.put("domain_name",queryDomain);
+ whoisInfo.put("domain_name", queryDomain);
whoisInfo.put("domain_host", res.get("Host"));
whoisInfo.put("domain_whois_create_time", res.get("CreationDate"));
whoisInfo.put("domain_whois_expiration_time", res.get("ExpirationDate"));
@@ -139,10 +142,10 @@ public class ChinaZ {
whoisInfo.put("domain_whois_phone", res.get("Phone"));
whoisInfo.put("domain_whois_name_servers", res.get("DnsServer"));
whoisInfo.put("domain_whois_status", res.get("DomainStatus"));
- }else{
+ } else {
whoisInfo.put("isSuccess", jsonRes.get("StateCode"));
}
- return whoisInfo;
+ return whoisInfo;
}
/**
@@ -150,19 +153,19 @@ public class ChinaZ {
* @Param : 待查询域名
* @Return: 拼接好的URL
*/
- public List queryStringBuilder(List domainList){
+ public List queryStringBuilder(List domainList) {
//将域名每50个划分一组
- int CHINAZ_REQUEST_LIMIT = 50 ;
+ int CHINAZ_REQUEST_LIMIT = 50;
int domainListSize = domainList.size();
int toIndex = CHINAZ_REQUEST_LIMIT;
Map domainListMap = new HashMap();
int keyToken = 0;
- for(int i = 0;idomainListSize){ //作用为toIndex最后没有50条数据则剩余几条newList中就装几条
- toIndex=domainListSize-i;
+ for (int i = 0; i < domainList.size(); i += CHINAZ_REQUEST_LIMIT) {
+ if (i + CHINAZ_REQUEST_LIMIT > domainListSize) { //作用为toIndex最后没有50条数据则剩余几条newList中就装几条
+ toIndex = domainListSize - i;
}
- List newList = domainList.subList(i,i+toIndex);
- domainListMap.put("keyName"+keyToken, newList);
+ List newList = domainList.subList(i, i + toIndex);
+ domainListMap.put("keyName" + keyToken, newList);
keyToken++;
}
//将批量查询的域名,构造成CHINAZ的格式
@@ -174,8 +177,8 @@ public class ChinaZ {
Object val = entry.getValue();
String urlString = "";
urlString = String.valueOf(val);
- urlString = urlString.replace(", ","|");
- urlString =urlString.replace("[","").replace("]","");
+ urlString = urlString.replace(", ", "|");
+ urlString = urlString.replace("[", "").replace("]", "");
domainListString.add(urlString);
}
return domainListString;
@@ -186,18 +189,18 @@ public class ChinaZ {
* @Param : 域名集合(不能超过50个)
* @Return: 查询结果
*/
- public String batchRequest_step1(String domainsString){
+ public String batchRequest_step1(String domainsString) {
String TaskID = "";
- String urlString = ApplicationConfig.API_CHINAZ_URL_BATCH;
+ String urlString = chinazConfig.getUrlBatch();
- Map params = new LinkedHashMap();
- if (!Objects.equals(domainsString, "overflow")){
- params.put("domains",domainsString);
- params.put("key", apiKey);
- JSONObject r = doPost(urlString, params);
+ Map params = new LinkedHashMap();
+ if (!Objects.equals(domainsString, "overflow")) {
+ params.put("domains", domainsString);
+ params.put("key", chinazConfig.getKey());
+ JSONObject r = doPost(urlString, params);
TaskID = r.get("TaskID").toString();
return TaskID;
- }else{
+ } else {
return TaskID;
}
@@ -208,11 +211,11 @@ public class ChinaZ {
* @Param : 任务ID
* @Return: 查询结果
*/
- public JSONObject batchRequest_step2(String TaskID){
- String urlString = ApplicationConfig.API_CHINAZ_URL_BATCH;
+ public JSONObject batchRequest_step2(String TaskID) {
+ String urlString = chinazConfig.getUrlBatch();
- Map params = new LinkedHashMap();
- params.put("taskid",TaskID);
+ Map params = new LinkedHashMap();
+ params.put("taskid", TaskID);
JSONObject requestTotal = null;
requestTotal = doPost(urlString, params);
return requestTotal;
@@ -223,17 +226,15 @@ public class ChinaZ {
* @Param : 域名列表
* @Return: whois记录列表
*/
- public List batchRequestController(List domainList){
+ public List batchRequestController(List domainList) {
- List result = new ArrayList<>();
- if (domainList.size()> 5000){
- System.out.println("Too many urls in a http post request!");
+ List result = new ArrayList<>();
+ if (domainList.size() > 5000) {
+ logger.info("Too many urls in a http post request!");
}
List domainListString = new ArrayList<>();
- List TaskID = new ArrayList<>();
+ List TaskID = new ArrayList<>();
-
- // Queue queue = new LinkedList();
domainListString = queryStringBuilder(domainList);
//循环发送请求,收集每个请求的TaskID
for (String domainParam : domainListString) {
@@ -276,7 +277,7 @@ public class ChinaZ {
* @Param : 请求对URL,POST请求体需要添加的 k-v 数据
* @Return: API JSON数据
*/
- public JSONObject doPost(String url, Map params){
+ public JSONObject doPost(String url, Map params) {
JSONObject jsonRes = null;
try {
// 定义HttpClient
@@ -291,16 +292,14 @@ public class ChinaZ {
String name = (String) o;
String value = String.valueOf(params.get(name));
nvps.add(new BasicNameValuePair(name, value));
-
- //System.out.println(name +"-"+value);
}
request.setEntity(new UrlEncodedFormEntity(nvps));
//发送请求
- HttpResponse httpResponse = client.execute(request);
+ HttpResponse httpResponse = client.execute(request);
// 获取响应输入流
InputStream inStream = httpResponse.getEntity().getContent();
//对放回数据进行处理
- BufferedReader reader = new BufferedReader(new InputStreamReader(inStream , StandardCharsets.UTF_8));
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inStream, StandardCharsets.UTF_8));
StringBuilder strber = new StringBuilder();
StringBuilder sbf = new StringBuilder();
String strRead = null;
@@ -311,26 +310,11 @@ public class ChinaZ {
// 关闭输入流
inStream.close();
jsonRes = JSONObject.parseObject(sbf.toString());
- }catch (Exception e) {
- System.out.println("请求接口异常");
+ } catch (Exception e) {
+ logger.error("chinaZ request error", e);
}
return jsonRes;
}
- public static void main(String[] args){
- ChinaZ t = new ChinaZ();
-
- //单查询测试
-// System.out.println(t.singleRequest("aaa.baidu.com"));
-
- //批量查询测试
- List domainList = new ArrayList<>();
- domainList.add("www.baidu.com");
-// domainList.add("aaa.qq.com");
-// domainList.add("doc.mesalab.com");
-
-// System.out.println(t.batchRequestController(domainList));
- System.out.println(t.getQueryResults(domainList));
- }
}
diff --git a/src/main/java/com/mesasoft/cn/sketch/config/ApplicationConfig.java b/src/main/java/com/mesasoft/cn/sketch/config/ApplicationConfig.java
deleted file mode 100644
index 099205e..0000000
--- a/src/main/java/com/mesasoft/cn/sketch/config/ApplicationConfig.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.mesasoft.cn.sketch.config;
-
-
-import com.mesasoft.cn.util.ConfigUtils;
-
-public class ApplicationConfig {
- public static final String QUERY_OUTPUT_DIR = ConfigUtils.getStringProperty("query.output.dir");
-
- public static final String QUERY_TYPES_DOMAIN = ConfigUtils.getStringProperty("query.types.domain");
- public static final String QUERY_TYPES_IP = ConfigUtils.getStringProperty("query.types.ip");
-
- public static final Integer UPDATE_EXPIRED_DAY = ConfigUtils.getIntProperty("update.expired.day"); // 更新任务中过期时间长度(天数)
-
- public static final Integer QUERY_READIN_BATCH = ConfigUtils.getIntProperty("query.readin.batch");
- public static final Integer QUERY_LOG_FILE_LINE_INTERVAL = ConfigUtils.getIntProperty("query.log.file.line.interval"); // 文件查询时,打印log的读取行数间隔
-
- // api参数
- // brightcloud
- public static final String API_BC_OEMID = ConfigUtils.getStringProperty("bc.oemid");
- public static final String API_BC_DEVICEID = ConfigUtils.getStringProperty("bc.deviceid");
- public static final String API_BC_UID = ConfigUtils.getStringProperty("bc.uid");
- public static final String API_BC_URL = ConfigUtils.getStringProperty("bc.url");
- public static final String API_BC_METHOD = ConfigUtils.getStringProperty("bc.method");
-
- public static final String API_BC_ISA1CAT = ConfigUtils.getStringProperty("bc.isa1cat");
- public static final String API_BC_ISREPU = ConfigUtils.getStringProperty("bc.isReputation");
- public static final String API_BC_ISXML = ConfigUtils.getStringProperty("bc.isxml");
-
-
- public static final Integer API_BC_MAXIMUM_QUERYNUM = ConfigUtils.getIntProperty("bc.maximum.query.num"); // brightcloud单次查询条数上线
- public static final String API_BC_QUERYTYPE = ConfigUtils.getStringProperty("bc.queryType");
-
- public static final String API_BC_USE_REPORT_FILE = ConfigUtils.getStringProperty("bc.usereport.filepath"); // brightcloud使用报告导出文件目录
- public static final String API_BC_CATEINFO_FILE = ConfigUtils.getStringProperty("bc.cateinfo.filepath"); // brightcloud使用报告导出文件目录
-
-
- // chinaz
- public static final String API_CHINAZ_URL_SINGLE = ConfigUtils.getStringProperty("chinaz.url.single");
- public static final String API_CHINAZ_URL_BATCH = ConfigUtils.getStringProperty("chinaz.url.batch");
- public static final String API_CHINAZ_KEY = ConfigUtils.getStringProperty("chinaz.key");
- public static final Integer API_CHINAZ_MAXIMUM_QUERYNUM = ConfigUtils.getIntProperty("chinaz.maximum.query.num");
- public static final String API_CHINAZ_USE_REPORT_FILE = ConfigUtils.getStringProperty("chinaz.usereport.filepath");
-
- // Mariadb
- public static final String DATABASE = ConfigUtils.getStringProperty("database");
- public static final String DOMAIN_CATE_TABLENAME = ConfigUtils.getStringProperty("tablename.domain.category");
- public static final String DOMAIN_WHOIS_TABLENAME = ConfigUtils.getStringProperty("tablename.domain.whois");
- public static final String DNS_SERVER_TABLENAME = ConfigUtils.getStringProperty("tablename.dns.server");
- public static final Integer DB_QUERY_BATCH_SIZE = ConfigUtils.getIntProperty("db.query.batch.size");
-
- // 其他
- public static final String TLD_FILE = ConfigUtils.getStringProperty("tld.file"); // 顶级域名公开列表文件
-
-}
diff --git a/src/main/java/com/mesasoft/cn/sketch/config/MariaDbBase.java b/src/main/java/com/mesasoft/cn/sketch/config/MariaDbBase.java
deleted file mode 100644
index ba617ce..0000000
--- a/src/main/java/com/mesasoft/cn/sketch/config/MariaDbBase.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.mesasoft.cn.sketch.config;
-
-import com.mesasoft.cn.util.TimeUtils;
-import org.apache.log4j.Logger;
-
-import java.sql.*;
-import java.util.Date;
-import java.util.Properties;
-
-/**
- * Created with IntelliJ IDEA.
- * User: joy
- * Date: 2021/12/28
- * Time: 2:56 PM
- * Description: No Description
- */
-public class MariaDbBase {
-
- private static final Logger LOG = Logger.getLogger(MariaDbBase.class);
- private static final Properties props = new Properties();
-
- private final Statement statement;
-
- public MariaDbBase(Connection conn, Statement stat) {
- statement = stat;
- }
-
- /**
- * 执行写入sql
- */
- public void writeSqlExecute(String sql){
- try {
- statement.executeUpdate(sql);
- } catch (SQLIntegrityConstraintViolationException e){
- LOG.error("Duplicated entry for key 'PRIMARY'");
- } catch (SQLException exception) {
- LOG.error("Sql : " + sql);
- exception.printStackTrace();
- }
- }
-
- /**
- * 执行查询sql
- */
- public ResultSet querySqlExecute(String sql){
- ResultSet set = null;
- try {
- set = statement.executeQuery(sql);
- } catch (SQLException exception) {
- exception.printStackTrace();
- }
- return set;
- }
-
-
- /**
- * 获得指定表格、按指定时间字段的过期记录
- * @param tableName 库表名称
- * @param timeColumnName 时间列名
- * @return 查询结果
- */
- public ResultSet getExpiredRecord(String tableName, String timeColumnName){
- Date lastUpdateTime = new Timestamp(getExpiredTime(ApplicationConfig.UPDATE_EXPIRED_DAY).getTime());
-
- String resSql = "SELECT *"
- + " FROM " + ApplicationConfig.DATABASE + "." + tableName
- + " WHERE " + timeColumnName + " < '" + lastUpdateTime + '\'';
-
- LOG.debug("Update task: expired query sql" + resSql);
-
- return querySqlExecute(resSql);
- }
-
- /**
- * TODO: getUnlabeledRecord() 考虑多个来源的情况
- */
-
- /**
- * 获得过期时间, 当前时间的expiredRangeDays天之前的日期为过期日期
- */
- public static Date getExpiredTime(int expiredRangeDays){
- return new Timestamp(TimeUtils.getStartOfDay(-expiredRangeDays).getTime());
- }
-}
diff --git a/src/main/java/com/mesasoft/cn/sketch/config/SketchDatabaseConfig.java b/src/main/java/com/mesasoft/cn/sketch/config/SketchDatabaseConfig.java
index dc69bbd..4a98701 100644
--- a/src/main/java/com/mesasoft/cn/sketch/config/SketchDatabaseConfig.java
+++ b/src/main/java/com/mesasoft/cn/sketch/config/SketchDatabaseConfig.java
@@ -1,125 +1,133 @@
-//package com.zhazhapan.efo.sketch.config;
-//
-//import com.alibaba.druid.pool.DruidDataSource;
-//import lombok.Data;
-//import org.apache.ibatis.session.SqlSessionFactory;
-//import org.mybatis.spring.SqlSessionFactoryBean;
-//import org.mybatis.spring.annotation.MapperScan;
-//import org.springframework.beans.factory.annotation.Qualifier;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.boot.context.properties.ConfigurationProperties;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-//
-//import javax.sql.DataSource;
-//import java.sql.SQLException;
-//
-///**
-// * @ProjectName
-// * @Description: 后台数据源配置类
-// */
-//@Data
-//@Configuration
-//@ConfigurationProperties(prefix = "sketch.datasource.druid")
-//@MapperScan(basePackages = SketchDatabaseConfig.PACKAGE, sqlSessionFactoryRef = "sketchSqlSessionFactory")
-//public class SketchDatabaseConfig {
-// /**
-// * dao层的包路径
-// */
-// static final String PACKAGE = "com.mao.mysqlhive.demomh.mapper.sketch";
-//
-// /**
-// * mapper文件的相对路径
-// */
-// private static final String MAPPER_LOCATION = "classpath:mappers/sketch/*Mapper.xml";
-//
-// @Value("${sketch.datasource.druid.filters}")
-// private String filters;
-// @Value("${sketch.datasource.druid.driverClassName}")
-// private String url;
-// @Value("${sketch.datasource.druid.url}")
-// private String username;
-// @Value("${sketch.datasource.druid.username}")
-// private String password;
-// @Value("${sketch.datasource.druid.password}")
-// private String driverClassName;
-// @Value("${sketch.datasource.druid.initialSize}")
-// private int initialSize;
-// @Value("${sketch.datasource.druid.minIdle}")
-// private int minIdle;
-// @Value("${sketch.datasource.druid.maxActive}")
-// private int maxActive;
-// @Value("${sketch.datasource.druid.maxWait}")
-// private long maxWait;
-// @Value("${sketch.datasource.druid.timeBetweenEvictionRunsMillis}")
-// private long timeBetweenEvictionRunsMillis;
-// @Value("${sketch.datasource.druid.minEvictableIdleTimeMillis}")
-// private long minEvictableIdleTimeMillis;
-// @Value("${sketch.datasource.druid.validationQuery}")
-// private String validationQuery;
-// @Value("${sketch.datasource.druid.testWhileIdle}")
-// private boolean testWhileIdle;
-// @Value("${sketch.datasource.druid.testOnBorrow}")
-// private boolean testOnBorrow;
-// @Value("${sketch.datasource.druid.testOnReturn}")
-// private boolean testOnReturn;
-// @Value("${sketch.datasource.druid.poolPreparedStatements}")
-// private boolean poolPreparedStatements;
-// @Value("${sketch.datasource.druid.maxPoolPreparedStatementPerConnectionSize}")
-// private int maxPoolPreparedStatementPerConnectionSize;
-//
-//
-// @Bean(name = "sketchDataSource")
-// public DataSource sketchDataSource() throws SQLException {
-// DruidDataSource druid = new DruidDataSource();
-// // 监控统计拦截的filters
-// druid.setFilters(filters);
-//
-// // 配置基本属性
-// druid.setDriverClassName(driverClassName);
-// druid.setUsername(username);
-// druid.setPassword(password);
-// druid.setUrl(url);
-//
-// //初始化时建立物理连接的个数
-// druid.setInitialSize(initialSize);
-// //最大连接池数量
-// druid.setMaxActive(maxActive);
-// //最小连接池数量
-// druid.setMinIdle(minIdle);
-// //获取连接时最大等待时间,单位毫秒。
-// druid.setMaxWait(maxWait);
-// //间隔多久进行一次检测,检测需要关闭的空闲连接
-// druid.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
-// //一个连接在池中最小生存的时间
-// druid.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
-// //用来检测连接是否有效的sql
-// druid.setValidationQuery(validationQuery);
-// //建议配置为true,不影响性能,并且保证安全性。
-// druid.setTestWhileIdle(testWhileIdle);
-// //申请连接时执行validationQuery检测连接是否有效
-// druid.setTestOnBorrow(testOnBorrow);
-// druid.setTestOnReturn(testOnReturn);
-// //是否缓存preparedStatement,也就是PSCache,oracle设为true,mysql设为false。分库分表较多推荐设置为false
-// druid.setPoolPreparedStatements(poolPreparedStatements);
-// // 打开PSCache时,指定每个连接上PSCache的大小
-// druid.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
-// return druid;
-// }
-//
-// @Bean(name = "sketchTransactionManager")
-// public DataSourceTransactionManager sketchTransactionManager() throws SQLException {
-// return new DataSourceTransactionManager(sketchDataSource());
-// }
-//
-// @Bean(name = "sketchSqlSessionFactory")
-// public SqlSessionFactory sketchSqlSessionFactory(@Qualifier("sketchDataSource") DataSource sketchDataSource) throws Exception {
-// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
-// sessionFactory.setDataSource(sketchDataSource);
-// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(SketchDatabaseConfig.MAPPER_LOCATION));
-//
-// return sessionFactory.getObject();
-// }
-//}
+/*
+package cn.ac.iie.efo.sketch.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import lombok.Data;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+*/
+/**
+ * @ProjectName
+ * @Description: 后台数据源配置类
+ *//*
+
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "sketch.datasource.druid")
+@MapperScan(basePackages = SketchDatabaseConfig.PACKAGE, sqlSessionFactoryRef = "sketchSqlSessionFactory")
+public class SketchDatabaseConfig {
+ */
+/**
+ * dao层的包路径
+ *//*
+
+ static final String PACKAGE = "com.mao.mysqlhive.demomh.mapper.sketch";
+
+ */
+/**
+ * mapper文件的相对路径
+ *//*
+
+ private static final String MAPPER_LOCATION = "classpath:mappers/sketch/*Mapper.xml";
+
+ @Value("${sketch.datasource.druid.filters}")
+ private String filters;
+ @Value("${sketch.datasource.druid.driverClassName}")
+ private String url;
+ @Value("${sketch.datasource.druid.url}")
+ private String username;
+ @Value("${sketch.datasource.druid.username}")
+ private String password;
+ @Value("${sketch.datasource.druid.password}")
+ private String driverClassName;
+ @Value("${sketch.datasource.druid.initialSize}")
+ private int initialSize;
+ @Value("${sketch.datasource.druid.minIdle}")
+ private int minIdle;
+ @Value("${sketch.datasource.druid.maxActive}")
+ private int maxActive;
+ @Value("${sketch.datasource.druid.maxWait}")
+ private long maxWait;
+ @Value("${sketch.datasource.druid.timeBetweenEvictionRunsMillis}")
+ private long timeBetweenEvictionRunsMillis;
+ @Value("${sketch.datasource.druid.minEvictableIdleTimeMillis}")
+ private long minEvictableIdleTimeMillis;
+ @Value("${sketch.datasource.druid.validationQuery}")
+ private String validationQuery;
+ @Value("${sketch.datasource.druid.testWhileIdle}")
+ private boolean testWhileIdle;
+ @Value("${sketch.datasource.druid.testOnBorrow}")
+ private boolean testOnBorrow;
+ @Value("${sketch.datasource.druid.testOnReturn}")
+ private boolean testOnReturn;
+ @Value("${sketch.datasource.druid.poolPreparedStatements}")
+ private boolean poolPreparedStatements;
+ @Value("${sketch.datasource.druid.maxPoolPreparedStatementPerConnectionSize}")
+ private int maxPoolPreparedStatementPerConnectionSize;
+
+
+ @Bean(name = "sketchDataSource")
+ public DataSource sketchDataSource() throws SQLException {
+ DruidDataSource druid = new DruidDataSource();
+ // 监控统计拦截的filters
+ druid.setFilters(filters);
+
+ // 配置基本属性
+ druid.setDriverClassName(driverClassName);
+ druid.setUsername(username);
+ druid.setPassword(password);
+ druid.setUrl(url);
+
+ //初始化时建立物理连接的个数
+ druid.setInitialSize(initialSize);
+ //最大连接池数量
+ druid.setMaxActive(maxActive);
+ //最小连接池数量
+ druid.setMinIdle(minIdle);
+ //获取连接时最大等待时间,单位毫秒。
+ druid.setMaxWait(maxWait);
+ //间隔多久进行一次检测,检测需要关闭的空闲连接
+ druid.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+ //一个连接在池中最小生存的时间
+ druid.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+ //用来检测连接是否有效的sql
+ druid.setValidationQuery(validationQuery);
+ //建议配置为true,不影响性能,并且保证安全性。
+ druid.setTestWhileIdle(testWhileIdle);
+ //申请连接时执行validationQuery检测连接是否有效
+ druid.setTestOnBorrow(testOnBorrow);
+ druid.setTestOnReturn(testOnReturn);
+ //是否缓存preparedStatement,也就是PSCache,oracle设为true,mysql设为false。分库分表较多推荐设置为false
+ druid.setPoolPreparedStatements(poolPreparedStatements);
+ // 打开PSCache时,指定每个连接上PSCache的大小
+ druid.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
+ return druid;
+ }
+
+ @Bean(name = "sketchTransactionManager")
+ public DataSourceTransactionManager sketchTransactionManager() throws SQLException {
+ return new DataSourceTransactionManager(sketchDataSource());
+ }
+
+ @Bean(name = "sketchSqlSessionFactory")
+ public SqlSessionFactory sketchSqlSessionFactory(@Qualifier("sketchDataSource") DataSource sketchDataSource) throws Exception {
+ final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+ sessionFactory.setDataSource(sketchDataSource);
+ sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(SketchDatabaseConfig.MAPPER_LOCATION));
+
+ return sessionFactory.getObject();
+ }
+}
+*/
diff --git a/src/main/java/com/mesasoft/cn/sketch/dao/SketchDAO.java b/src/main/java/com/mesasoft/cn/sketch/dao/SketchDAO.java
index 0473403..7f7292e 100644
--- a/src/main/java/com/mesasoft/cn/sketch/dao/SketchDAO.java
+++ b/src/main/java/com/mesasoft/cn/sketch/dao/SketchDAO.java
@@ -1,8 +1,8 @@
package com.mesasoft.cn.sketch.dao;
-import com.mesasoft.cn.sketch.dao.sqlprovider.SketchSqlProvider;
-import com.mesasoft.cn.sketch.entity.DomainCategory;
import com.mesasoft.cn.dao.sqlprovider.UserSqlProvider;
+import com.mesasoft.cn.sketch.dao.sqlprovider.SketchSqlProvider;
+import com.mesasoft.cn.sketch.entity.domain.DomainCategory;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/com/mesasoft/cn/sketch/dao/sqlprovider/SketchSqlProvider.java b/src/main/java/com/mesasoft/cn/sketch/dao/sqlprovider/SketchSqlProvider.java
index 53e24a2..0f9c078 100644
--- a/src/main/java/com/mesasoft/cn/sketch/dao/sqlprovider/SketchSqlProvider.java
+++ b/src/main/java/com/mesasoft/cn/sketch/dao/sqlprovider/SketchSqlProvider.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.sketch.dao.sqlprovider;
-import com.mesasoft.cn.SketchApplication;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.zhazhapan.util.Checker;
import org.apache.ibatis.annotations.Param;
@@ -19,9 +19,9 @@ public class SketchSqlProvider {
if (Checker.isNotEmpty(condition)) {
WHERE("fqdn like '%" + condition + "'");
}
- ORDER_BY(SketchApplication.settings.getStringUseEval(ConfigConsts.USER_ORDER_BY_OF_SETTINGS));
+ ORDER_BY(WebSketchApplication.settings.getStringUseEval(ConfigConsts.USER_ORDER_BY_OF_SETTINGS));
}}.toString();
- int size = SketchApplication.settings.getIntegerUseEval(ConfigConsts.USER_PAGE_SIZE_OF_SETTINGS);
+ int size = WebSketchApplication.settings.getIntegerUseEval(ConfigConsts.USER_PAGE_SIZE_OF_SETTINGS);
return sql + " limit " + (offset * size) + "," + size;
}
}
diff --git a/src/main/java/com/mesasoft/cn/sketch/entity/DomainCategory.java b/src/main/java/com/mesasoft/cn/sketch/entity/DomainCategory.java
deleted file mode 100644
index dbcfdc1..0000000
--- a/src/main/java/com/mesasoft/cn/sketch/entity/DomainCategory.java
+++ /dev/null
@@ -1,340 +0,0 @@
-package com.mesasoft.cn.sketch.entity;
-
-import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.util.ConfigUtils;
-import com.mesasoft.cn.sketch.config.ApplicationConfig;
-import com.mesasoft.cn.util.MariaDbBase;
-import com.mesasoft.cn.util.ValidationUtils;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * Created with IntelliJ IDEA.
- * User: joy
- * Date: 2021/12/29
- * Time: 9:27 AM
- * Description: No Description
- */
-public class DomainCategory {
- private static final String dataBase = ApplicationConfig.DATABASE;
- private static final String tableName = ApplicationConfig.DOMAIN_CATE_TABLENAME;
-
- private String fqdn;
- private String source;
- private Boolean query_success;
- private Integer match_pattern;
- private Integer reputation_score;
- private String reputation_level;
- private Integer category_id;
- private String category_name;
- private String category_group;
- private Integer category_conf;
- private Boolean is_a1_cat;
- private Integer status_code = 0;
- private String submit_user ="''";
-
-
- // category schema
- public DomainCategory(String fqdn,
- String source,
- Boolean query_success,
- Integer match_pattern,
- Integer reputation_score,
- String reputationLevel,
- Integer categoryId,
- String categoryName,
- String categoryGroup,
- Integer categoryConf,
- Boolean isA1Cat, Integer statusCode, String submitUser) {
-
- this.fqdn = fqdn;
- this.source = source; // 默认应为为brightcloud
- this.query_success = query_success;
-
- // 没有设置match_pattern,则二级域名为右匹配,其余为全匹配
- if (match_pattern == null) {
- this.match_pattern = ValidationUtils.getMatchPattern(fqdn);
- } else {
- this.match_pattern = match_pattern;
- }
-
- this.reputation_score = reputation_score;
- this.reputation_level = ConfigUtils.getEffectiveString(reputationLevel);
- this.category_id = categoryId;
- this.category_name = ConfigUtils.getEffectiveString(categoryName);
- this.category_group = ConfigUtils.getEffectiveString(categoryGroup);
- this.category_conf = categoryConf;
- this.is_a1_cat = isA1Cat;
- this.status_code = statusCode;
- this.submit_user = submitUser;
-
- }
- public DomainCategory(String fqdn,
- String source,
- Boolean query_success,
- Integer match_pattern,
- Integer reputation_score,
- String reputationLevel,
- Integer categoryId,
- String categoryName,
- String categoryGroup,
- Integer categoryConf,
- Boolean isA1Cat) {
-
- this.fqdn = fqdn;
- this.source = source; // 默认应为为brightcloud
- this.query_success = query_success;
-
- // 没有设置match_pattern,则二级域名为右匹配,其余为全匹配
- if (match_pattern == null) {
- this.match_pattern = ValidationUtils.getMatchPattern(fqdn);
- } else {
- this.match_pattern = match_pattern;
- }
-
- this.reputation_score = reputation_score;
- this.reputation_level = ConfigUtils.getEffectiveString(reputationLevel);
- this.category_id = categoryId;
- this.category_name = ConfigUtils.getEffectiveString(categoryName);
- this.category_group = ConfigUtils.getEffectiveString(categoryGroup);
- this.category_conf = categoryConf;
- this.is_a1_cat = isA1Cat;
-
- }
- public static void insertRecords(List categoryFiles, MariaDbBase mariaDbBase) {
- for (DomainCategory categoryFile : categoryFiles) {
- // 生成sql
- String resSql = "INSERT INTO " + dataBase + "." + tableName + ' ' +
- " (" + categoryFile.getKeys() + ") values" +
- '(' + categoryFile.getValues() + ')';
- resSql = resSql.replace("'null'", "null");
-
- mariaDbBase.writeSqlExecute(resSql);
- }
- }
-
- public void updateRecords(List categoryFiles, MariaDbBase mariaDbBase) {
- for (DomainCategory categoryFile : categoryFiles) {
-
- String resSql = "UPDATE " + dataBase + "." +
- tableName + ' ' +
- "SET " + categoryFile.getKeyValues() +
- ", update_time = current_time() " +
- " WHERE fqdn = '" + categoryFile.getFqdn() + '\'';
- resSql = resSql.replace("'null'", "null");
-
- mariaDbBase.writeSqlExecute(resSql);
- }
- }
-
- public static List getDbRecord(List fqdns, MariaDbBase mariaDbBase, String source) throws SQLException {
- String queryFqdns = fqdns.stream().map(s -> "'" + s + "'").collect(Collectors.joining(","));
- String sql = "SELECT * FROM " + dataBase + "." +
- tableName + ' ' +
- " WHERE fqdn in (" + queryFqdns + ") and source = '" + source + "'";
-
- return rs2schema(mariaDbBase.querySqlExecute(sql));
- }
-
- public static List rs2schema(ResultSet rs) throws SQLException {
- List schemaFiles = new ArrayList<>();
- while (rs.next()) {
- schemaFiles.add(
- new DomainCategory(
- rs.getString("fqdn"),
- rs.getString("source"),
- rs.getBoolean("query_success"),
- rs.getInt("match_pattern"),
- rs.getInt("reputation_score"),
- rs.getString("reputation_level"),
- rs.getInt("category_id"),
- rs.getString("category_name"),
- rs.getString("category_group"),
- rs.getInt("category_conf"),
- rs.getBoolean("is_a1_cat"),
- rs.getInt("status_code"),
- rs.getString("submit_user")
-
- ));
- }
- return schemaFiles;
- }
-
- public static JSONObject schema2json(DomainCategory schema) throws SQLException {
- JSONObject jsonObject = new JSONObject(true);
- jsonObject.put("fqdn", schema.getFqdn());
- jsonObject.put("source", schema.getSource());
- jsonObject.put("query_success", schema.getQuery_success());
- jsonObject.put("match_pattern", schema.getMatch_pattern());
- jsonObject.put("reputation_score", schema.getReputation_score());
- jsonObject.put("reputation_level", schema.getReputation_level());
- jsonObject.put("category_id", schema.getCategory_id());
- jsonObject.put("category_group", schema.getCategory_group());
- jsonObject.put("category_name", schema.getCategory_name());
- jsonObject.put("category_conf", schema.getCategory_conf());
- jsonObject.put("is_a1_cat", schema.getIs_a1_cat());
- jsonObject.put("status_code", schema.getStatus_code());
- jsonObject.put("submit_user", schema.getSubmit_user());
-
- return jsonObject;
- }
-
- public String getValues() {
- String resString = "'" + fqdn + '\'' +
- ", '" + source + '\'' +
- ", " + query_success +
- ", " + match_pattern +
- ", " + reputation_score +
- ", '" + reputation_level + '\'' +
- ", " + category_id +
- ", '" + category_name + '\'' +
- ", '" + category_group + '\'' +
- ", " + category_conf +
- ", " + status_code +
- ", " + submit_user +
- ", " + is_a1_cat;
-
- return resString.replace("'null'", "null");
- }
-
- public String getKeys() {
- String resString;
- resString = "fqdn" +
- ", source" +
- ", query_success" +
- ", match_pattern" +
- ", reputation_score" +
- ", reputation_level" +
- ", category_id" +
- ", category_name" +
- ", category_group" +
- ", category_conf" +
- ", status_code" +
- ", submit_user" +
- ", is_a1_cat";
- return resString;
- }
-
- public String getKeyValues() {
- String resString = "source='" + source + '\'' +
- ", query_success=" + query_success +
- ", match_pattern=" + match_pattern +
- ", reputation_score=" + reputation_score +
- ", reputation_level='" + reputation_level + '\'' +
- ", category_id=" + category_id +
- ", category_name='" + category_name + '\'' +
- ", category_group='" + category_group + '\'' +
- ", category_conf=" + category_conf +
- ", is_a1_cat=" + is_a1_cat;
-
- return resString.replace("'null'", "null");
- }
-
- public String getFqdn() {
- return fqdn;
- }
-
- public void setFqdn(String fqdn) {
- this.fqdn = fqdn;
- }
-
- public String getSource() {
- return source;
- }
-
- public void setSource(String source) {
- this.source = source;
- }
-
- public Boolean getQuery_success() {
- return query_success;
- }
-
- public void setQuery_success(Boolean query_success) {
- this.query_success = query_success;
- }
-
- public Integer getMatch_pattern() {
- return match_pattern;
- }
-
- public void setMatch_pattern(Integer match_pattern) {
- this.match_pattern = match_pattern;
- }
-
- public Integer getReputation_score() {
- return reputation_score;
- }
-
- public void setReputation_score(Integer reputation_score) {
- this.reputation_score = reputation_score;
- }
-
- public String getReputation_level() {
- return reputation_level;
- }
-
- public void setReputation_level(String reputation_level) {
- this.reputation_level = reputation_level;
- }
-
- public Integer getCategory_id() {
- return category_id;
- }
-
- public void setCategory_id(Integer category_id) {
- this.category_id = category_id;
- }
-
- public String getCategory_name() {
- return category_name;
- }
-
- public void setCategory_name(String category_name) {
- this.category_name = category_name;
- }
-
- public String getCategory_group() {
- return category_group;
- }
-
- public void setCategory_group(String category_group) {
- this.category_group = category_group;
- }
-
- public Integer getCategory_conf() {
- return category_conf;
- }
-
- public void setCategory_conf(Integer category_conf) {
- this.category_conf = category_conf;
- }
-
- public Boolean getIs_a1_cat() {
- return is_a1_cat;
- }
-
- public void setIs_a1_cat(Boolean is_a1_cat) {
- this.is_a1_cat = is_a1_cat;
- }
-
- public Integer getStatus_code() {
- return status_code;
- }
-
- public void setStatus_code(Integer status_code) {
- this.status_code = status_code;
- }
-
- public String getSubmit_user() {
- return submit_user;
- }
-
- public void setSubmit_user(String submit_user) {
- this.submit_user = submit_user;
- }
-}
diff --git a/src/main/java/com/mesasoft/cn/sketch/entity/DomainWhois.java b/src/main/java/com/mesasoft/cn/sketch/entity/DomainWhois.java
deleted file mode 100644
index 55679a8..0000000
--- a/src/main/java/com/mesasoft/cn/sketch/entity/DomainWhois.java
+++ /dev/null
@@ -1,423 +0,0 @@
-package com.mesasoft.cn.sketch.entity;
-
-import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.sketch.config.ApplicationConfig;
-import com.mesasoft.cn.util.ConfigUtils;
-import com.mesasoft.cn.util.MariaDbBase;
-import com.mesasoft.cn.util.ValidationUtils;
-
-import java.sql.Date;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * Created with IntelliJ IDEA.
- * User: joy
- * Date: 2021/12/29
- * Time: 9:27 AM
- * Description: No Description
- */
-public class DomainWhois {
- private static final String dataBase = ApplicationConfig.DATABASE;
- private static final String tableName = ApplicationConfig.DOMAIN_WHOIS_TABLENAME;
-
- private String fqdn;
- private String source;
- private Boolean query_success;
- private Integer match_pattern;
- private String whois_domain;
- private Timestamp whois_update_date;
- private Timestamp whois_create_date;
- private Timestamp whois_expire_date;
- private String whois_email;
- private String whois_ns;
- private String whois_registrar_name;
- private String whois_registrant_org;
- private String whois_registrant_name;
- private String whois_registrant_street;
- private String whois_registrant_city;
- private String whois_registrant_state;
- private String whois_registrant_postcode;
- private String whois_registrant_country;
- private String whois_registrant_phone;
-
-
- // category schema
- public DomainWhois(String fqdn,
- String source,
- Integer match_pattern,
- Boolean query_success,
- String whoisDomain,
- Date whoisUpdateDate,
- Date whoisCreateDate,
- Date whoisExpireDate,
- String whoisEmail,
- String whoisNs,
- String whoisRegistrarName,
- String whoisRegistrantOrg,
- String whoisRegistrantName,
- String whoisRegistrantStreet,
- String whoisRegistrantCity,
- String whoisRegistrantState,
- String whoisRegistrantPostcode,
- String whoisRegistrantCountry,
- String whoisRegistrantPhone
- ) {
-
- this.fqdn = fqdn;
- this.source = source;
-
- // 没有设置match_pattern,则二级域名为右匹配,其余为全匹配
- if (match_pattern == null) {
- this.match_pattern = ValidationUtils.getMatchPattern(fqdn);
- } else {
- this.match_pattern = match_pattern;
- }
-
- this.query_success = query_success;
- this.whois_domain = ConfigUtils.getEffectiveString(whoisDomain);
- this.whois_update_date = whoisUpdateDate == null ? null : new Timestamp(whoisUpdateDate.getTime());
- this.whois_create_date = whoisCreateDate == null ? null : new Timestamp(whoisCreateDate.getTime());
- this.whois_expire_date = whoisExpireDate == null ? null : new Timestamp(whoisExpireDate.getTime());
- this.whois_email = ConfigUtils.getEffectiveString(whoisEmail);
- this.whois_ns = ConfigUtils.getEffectiveString(whoisNs);
- this.whois_registrar_name = ConfigUtils.getEffectiveString(whoisRegistrarName);
- this.whois_registrant_org = ConfigUtils.getEffectiveString(whoisRegistrantOrg);
- this.whois_registrant_name = ConfigUtils.getEffectiveString(whoisRegistrantName);
- this.whois_registrant_street = ConfigUtils.getEffectiveString(whoisRegistrantStreet);
- this.whois_registrant_city = ConfigUtils.getEffectiveString(whoisRegistrantCity);
- this.whois_registrant_state = ConfigUtils.getEffectiveString(whoisRegistrantState);
- this.whois_registrant_postcode = ConfigUtils.getEffectiveString(whoisRegistrantPostcode);
- this.whois_registrant_country = ConfigUtils.getEffectiveString(whoisRegistrantCountry);
- this.whois_registrant_phone = ConfigUtils.getEffectiveString(whoisRegistrantPhone);
- }
-
- public static void insertRecords(List whoisFiles, MariaDbBase mariaDbBase) {
- for (DomainWhois whoisFile : whoisFiles) {
- // 生成sql
- String resSql = "INSERT INTO " + dataBase + "." + tableName + ' ' +
- " (" + whoisFile.getKeys() + ") values" +
- '(' + whoisFile.getValues() + ')';
- resSql = resSql.replace("'null'", "null");
-
- mariaDbBase.writeSqlExecute(resSql);
- }
- }
-
- public static String insertSql(List whoisFiles) {
- DomainWhois whoisFile = whoisFiles.get(0);
- // 生成sql
- String resSql = "INSERT INTO " + dataBase + "." + tableName + ' ' +
- " (" + whoisFile.getKeys() + ") values" +
- '(' + whoisFile.getValues() + ')';
- resSql = resSql.replace("'null'", "null");
-
- return resSql;
- }
-
- public static void updateRecords(List categoryFiles, MariaDbBase mariaDbBase) {
- for (DomainWhois categoryFile : categoryFiles) {
-
- String resSql = "UPDATE " + dataBase + "." +
- tableName + ' ' +
- "SET " + categoryFile.getKeyValues() +
- ", update_time = current_time() " +
- " WHERE fqdn = '" + categoryFile.getFqdn() + '\'';
- resSql = resSql.replace("'null'", "null");
-
- mariaDbBase.writeSqlExecute(resSql);
- }
- }
-
- public static List getDbRecord(List fqdns, MariaDbBase mariaDbBase, String source) throws SQLException {
- String queryFqdns = fqdns.stream().map(s -> "'" + s + "'").collect(Collectors.joining(","));
- String sql = "SELECT * FROM " + dataBase + "." +
- tableName + ' ' +
- " WHERE fqdn in (" + queryFqdns + ") ";
-
- return rs2schema(mariaDbBase.querySqlExecute(sql));
- }
-
- public String getValues() {
- String resString = "'" + fqdn + '\'' +
- ", '" + source + '\'' +
- ", " + query_success +
- ", " + match_pattern +
- ", '" + whois_domain + '\'' +
- ", '" + whois_update_date + '\'' +
- ", '" + whois_create_date + '\'' +
- ", '" + whois_expire_date + '\'' +
- ", '" + whois_email + '\'' +
- ", '" + whois_ns + '\'' +
- ", '" + whois_registrar_name + '\'' +
- ", '" + whois_registrant_org + '\'' +
- ", '" + whois_registrant_name + '\'' +
- ", '" + whois_registrant_street + '\'' +
- ", '" + whois_registrant_city + '\'' +
- ", '" + whois_registrant_state + '\'' +
- ", '" + whois_registrant_postcode + '\'' +
- ", '" + whois_registrant_country + '\'' +
- ", '" + whois_registrant_phone + '\'';
-
- return resString.replace("'null'", "null");
- }
-
- public static List rs2schema(ResultSet rs) throws SQLException {
- List schemaFiles = new ArrayList<>();
- while (rs.next()) {
- schemaFiles.add(
- new DomainWhois(
- rs.getString("fqdn"),
- rs.getString("source"),
- rs.getInt("match_pattern"),
- rs.getBoolean("query_success"),
- rs.getString("whois_domain"),
- (Date) rs.getDate("whois_update_date"),
- (Date) rs.getDate("whois_create_date"),
- (Date) rs.getDate("whois_expire_date"),
- rs.getString("whois_email"),
- rs.getString("whois_ns"),
- rs.getString("whois_registrar_name"),
- rs.getString("whois_registrant_org"),
- rs.getString("whois_registrant_name"),
- rs.getString("whois_registrant_street"),
- rs.getString("whois_registrant_city"),
- rs.getString("whois_registrant_state"),
- rs.getString("whois_registrant_postcode"),
- rs.getString("whois_registrant_country"),
- rs.getString("whois_registrant_phone")
- ));
- }
- return schemaFiles;
- }
-
- public static JSONObject schema2json(DomainWhois schema) throws SQLException {
- JSONObject jsonObject = new JSONObject(true);
- jsonObject.put("fqdn", schema.getFqdn());
- jsonObject.put("source", schema.getSource());
- jsonObject.put("match_pattern", schema.getMatch_pattern());
- jsonObject.put("query_success", schema.getQuery_success());
- jsonObject.put("whois_domain", schema.getWhois_domain());
- jsonObject.put("whois_update_date", schema.getWhois_update_date());
- jsonObject.put("whois_create_date", schema.getWhois_create_date());
- jsonObject.put("whois_expire_date", schema.getWhois_expire_date());
- jsonObject.put("whois_email", schema.getWhois_email());
- jsonObject.put("whois_ns", schema.getWhois_ns());
- jsonObject.put("whois_registrar_name", schema.getWhois_registrar_name());
- jsonObject.put("whois_registrant_org", schema.getWhois_registrant_org());
- jsonObject.put("whois_registrant_name", schema.getWhois_registrant_name());
- jsonObject.put("whois_registrant_street", schema.getWhois_registrant_street());
- jsonObject.put("whois_registrant_city", schema.getWhois_registrant_city());
- jsonObject.put("whois_registrant_state", schema.getWhois_registrant_state());
- jsonObject.put("whois_registrant_postcode", schema.getWhois_registrant_postcode());
- jsonObject.put("whois_registrant_country", schema.getWhois_registrant_country());
- jsonObject.put("whois_registrant_phone", schema.getWhois_registrant_phone());
-
- return jsonObject;
- }
-
- public String getKeys() {
- String resString;
- resString = "fqdn" +
- ", source" +
- ", query_success" +
- ", match_pattern" +
- ", whois_domain" +
- ", whois_update_date" +
- ", whois_create_date" +
- ", whois_expire_date" +
- ", whois_email" +
- ", whois_ns" +
- ", whois_registrar_name" +
- ", whois_registrant_org" +
- ", whois_registrant_name" +
- ", whois_registrant_street" +
- ", whois_registrant_city" +
- ", whois_registrant_state" +
- ", whois_registrant_postcode" +
- ", whois_registrant_country" +
- ", whois_registrant_phone";
- return resString;
- }
-
- public String getKeyValues() {
- String resString = "query_success=" + query_success +
- ", source='" + source + '\'' +
- ", match_pattern=" + match_pattern +
- ", whois_domain='" + whois_domain + '\'' +
- ", whois_update_date='" + whois_update_date + '\'' +
- ", whois_create_date='" + whois_create_date + '\'' +
- ", whois_expire_date='" + whois_expire_date + '\'' +
- ", whois_email='" + whois_email + '\'' +
- ", whois_ns='" + whois_ns + '\'' +
- ", whois_registrar_name='" + whois_registrar_name + '\'' +
- ", whois_registrant_org='" + whois_registrant_org + '\'' +
- ", whois_registrant_name='" + whois_registrant_name + '\'' +
- ", whois_registrant_street='" + whois_registrant_street + '\'' +
- ", whois_registrant_city='" + whois_registrant_city + '\'' +
- ", whois_registrant_state='" + whois_registrant_state + '\'' +
- ", whois_registrant_postcode='" + whois_registrant_postcode + '\'' +
- ", whois_registrant_country='" + whois_registrant_country + '\'' +
- ", whois_registrant_phone='" + whois_registrant_phone + '\'';
-
- return resString.replace("'null'", "null");
- }
-
-
- public String getSource() {
- return source;
- }
-
- public void setSource(String source) {
- this.source = source;
- }
-
- public String getFqdn() {
- return fqdn;
- }
-
- public void setFqdn(String fqdn) {
- this.fqdn = fqdn;
- }
-
- public Boolean getQuery_success() {
- return query_success;
- }
-
- public void setQuery_success(Boolean query_success) {
- this.query_success = query_success;
- }
-
- public Integer getMatch_pattern() {
- return match_pattern;
- }
-
- public void setMatch_pattern(Integer match_pattern) {
- this.match_pattern = match_pattern;
- }
-
- public String getWhois_domain() {
- return whois_domain;
- }
-
- public void setWhois_domain(String whois_domain) {
- this.whois_domain = whois_domain;
- }
-
- public Timestamp getWhois_update_date() {
- return whois_update_date;
- }
-
- public void setWhois_update_date(Timestamp whois_update_date) {
- this.whois_update_date = whois_update_date;
- }
-
- public Timestamp getWhois_create_date() {
- return whois_create_date;
- }
-
- public void setWhois_create_date(Timestamp whois_create_date) {
- this.whois_create_date = whois_create_date;
- }
-
- public Timestamp getWhois_expire_date() {
- return whois_expire_date;
- }
-
- public void setWhois_expire_date(Timestamp whois_expire_date) {
- this.whois_expire_date = whois_expire_date;
- }
-
- public String getWhois_email() {
- return whois_email;
- }
-
- public void setWhois_email(String whois_email) {
- this.whois_email = whois_email;
- }
-
- public String getWhois_ns() {
- return whois_ns;
- }
-
- public void setWhois_ns(String whois_ns) {
- this.whois_ns = whois_ns;
- }
-
- public String getWhois_registrar_name() {
- return whois_registrar_name;
- }
-
- public void setWhois_registrar_name(String whois_registrar_name) {
- this.whois_registrar_name = whois_registrar_name;
- }
-
- public String getWhois_registrant_org() {
- return whois_registrant_org;
- }
-
- public void setWhois_registrant_org(String whois_registrant_org) {
- this.whois_registrant_org = whois_registrant_org;
- }
-
- public String getWhois_registrant_name() {
- return whois_registrant_name;
- }
-
- public void setWhois_registrant_name(String whois_registrant_name) {
- this.whois_registrant_name = whois_registrant_name;
- }
-
- public String getWhois_registrant_street() {
- return whois_registrant_street;
- }
-
- public void setWhois_registrant_street(String whois_registrant_street) {
- this.whois_registrant_street = whois_registrant_street;
- }
-
- public String getWhois_registrant_city() {
- return whois_registrant_city;
- }
-
- public void setWhois_registrant_city(String whois_registrant_city) {
- this.whois_registrant_city = whois_registrant_city;
- }
-
- public String getWhois_registrant_state() {
- return whois_registrant_state;
- }
-
- public void setWhois_registrant_state(String whois_registrant_state) {
- this.whois_registrant_state = whois_registrant_state;
- }
-
- public String getWhois_registrant_postcode() {
- return whois_registrant_postcode;
- }
-
- public void setWhois_registrant_postcode(String whois_registrant_postcode) {
- this.whois_registrant_postcode = whois_registrant_postcode;
- }
-
- public String getWhois_registrant_country() {
- return whois_registrant_country;
- }
-
- public void setWhois_registrant_country(String whois_registrant_country) {
- this.whois_registrant_country = whois_registrant_country;
- }
-
- public String getWhois_registrant_phone() {
- return whois_registrant_phone;
- }
-
- public void setWhois_registrant_phone(String whois_registrant_phone) {
- this.whois_registrant_phone = whois_registrant_phone;
- }
-}
-
diff --git a/src/main/java/com/mesasoft/cn/sketch/service/SketchService.java b/src/main/java/com/mesasoft/cn/sketch/service/SketchService.java
index bb15d13..abe511b 100644
--- a/src/main/java/com/mesasoft/cn/sketch/service/SketchService.java
+++ b/src/main/java/com/mesasoft/cn/sketch/service/SketchService.java
@@ -1,5 +1,5 @@
/*
-package com.zhazhapan.efo.sketch.service;
+package cn.ac.iie.efo.sketch.service;
import cn.ac.iie.api.ChinaZ;
import cn.ac.iie.dao.MariaDbBase;
@@ -8,12 +8,12 @@ import cn.ac.iie.util.ValidationUtils;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
-import com.zhazhapan.efo.sketch.api.BrightCloud;
-import com.zhazhapan.efo.sketch.api.ChinaZ;
-import com.zhazhapan.efo.sketch.config.ApplicationConfig;
-import com.zhazhapan.efo.sketch.entity.DomainCategory;
-import com.zhazhapan.efo.sketch.entity.DomainWhois;
-import com.zhazhapan.efo.util.FileUtils;
+import cn.ac.iie.efo.sketch.api.BrightCloud;
+import cn.ac.iie.efo.sketch.api.ChinaZ;
+import cn.ac.iie.efo.sketch.config.ApplicationConfig;
+import cn.ac.iie.efo.sketch.entity.domain.DomainCategory;
+import cn.ac.iie.efo.sketch.entity.domain.DomainWhois;
+import cn.ac.iie.efo.util.FileUtils;
import org.apache.log4j.Logger;
import java.io.FileOutputStream;
diff --git a/src/main/java/com/mesasoft/cn/util/ConfigUtils.java b/src/main/java/com/mesasoft/cn/util/ConfigUtils.java
deleted file mode 100644
index 8aedad0..0000000
--- a/src/main/java/com/mesasoft/cn/util/ConfigUtils.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.mesasoft.cn.util;
-
-
-import org.apache.log4j.Logger;
-
-import java.util.Properties;
-
-public class ConfigUtils {
- private static final Logger LOG = Logger.getLogger(ConfigUtils.class);
- private static Properties propCommon = new Properties();
-
- public static String getStringProperty(String key) {
- return propCommon.getProperty(key);
- }
-
- public static Integer getIntProperty(String key) {
- return Integer.parseInt(propCommon.getProperty(key));
- }
-
- public static Long getLongProperty(String key) {
- return Long.parseLong(propCommon.getProperty(key));
- }
-
- public static Boolean getBooleanProperty(String key) {
- return "true".equals(propCommon.getProperty(key).toLowerCase().trim());
- }
-
- public static String getEffectiveString(String s) {
- if (!(s == null)) {
- return s.length() == 0 ? null : s;
- } else {
- return null;
- }
- }
-
- static {
- try {
- propCommon.load(ConfigUtils.class.getClassLoader().getResourceAsStream("sketch.properties"));
-
- } catch (Exception e) {
- propCommon = null;
- LOG.error("配置加载失败");
- }
- }
-
-}
diff --git a/src/main/java/com/mesasoft/cn/util/ControllerUtils.java b/src/main/java/com/mesasoft/cn/util/ControllerUtils.java
index e551434..4542a8c 100644
--- a/src/main/java/com/mesasoft/cn/util/ControllerUtils.java
+++ b/src/main/java/com/mesasoft/cn/util/ControllerUtils.java
@@ -12,7 +12,10 @@ import javax.activation.MimetypesFileTypeMap;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
/**
* @author pantao
diff --git a/src/main/java/com/mesasoft/cn/util/FileUtils.java b/src/main/java/com/mesasoft/cn/util/FileUtils.java
deleted file mode 100644
index 773843d..0000000
--- a/src/main/java/com/mesasoft/cn/util/FileUtils.java
+++ /dev/null
@@ -1,197 +0,0 @@
-package com.mesasoft.cn.util;
-
-import org.apache.log4j.Logger;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author yjy
- * @version 1.0
- * @date 2021/2/25 6:11 下午
- */
-public class FileUtils {
- private static final Logger LOG = Logger.getLogger(FileUtils.class);
-
- public static List readTxtFileIntoStringArrList(String filePath)
- {
- List list = new ArrayList<>();
- try
- {
- String encoding = "GBK";
- File file = new File(filePath);
- if (file.isFile() && file.exists())
- { // 判断文件是否存在
- InputStreamReader read = new InputStreamReader(
- new FileInputStream(file), encoding);
- BufferedReader bufferedReader = new BufferedReader(read);
- String lineTxt = null;
-
- while ((lineTxt = bufferedReader.readLine()) != null)
- {
- if (!lineTxt.equals("")) {
- list.add(lineTxt.trim());
- }
- }
- bufferedReader.close();
- read.close();
- }
- else
- {
- System.out.println("Can not find file: " + filePath);
- }
- }
- catch (Exception e)
- {
- System.out.println("Error occurred in Function 'readTxtFileIntoStringArrList'");
- e.printStackTrace();
- }
-
- return list;
- }
-
- public static List getBatchLineReadIn(BufferedReader bufferedReader, int batchSize){
- List list = new ArrayList<>();
- String lineTxt;
- try{
- while ((lineTxt = bufferedReader.readLine()) != null && list.size() lengthDomain) {
- lengthDomain = split.length;
- }
- }
- read.close();
- } else {
- LOG.error("FilePath is wrong--->{" + filePath + "}<---");
- }
- } catch (Exception e) {
- LOG.error("Get filePathData error--->{" + e + "}<---");
- e.printStackTrace();
- }
- return lengthDomain;
- }
-}
diff --git a/src/main/java/com/mesasoft/cn/util/MariaDBUtils.java b/src/main/java/com/mesasoft/cn/util/MariaDBUtils.java
deleted file mode 100644
index a86b363..0000000
--- a/src/main/java/com/mesasoft/cn/util/MariaDBUtils.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package com.mesasoft.cn.util;
-
-import com.alibaba.druid.pool.DruidDataSourceFactory;
-
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Properties;
-
-/**
- * Druid连接池的工具类
- */
-public class MariaDBUtils {
- private static DataSource ds ;
-
- static{
- try {
- Properties pro = new Properties();
-// pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
- ds = DruidDataSourceFactory.createDataSource(pro);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 获取连接
- */
- public static Connection getConnection() throws SQLException {
- return ds.getConnection();
- }
-
- /**
- * 释放资源
- */
- public static void close(Statement stmt,Connection conn){
-
- close(null,stmt,conn);
- }
-
-
- public static void close(ResultSet rs , Statement stmt, Connection conn){
-
-
- if(rs != null){
- try {
- rs.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-
-
- if(stmt != null){
- try {
- stmt.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
-
- if(conn != null){
- try {
- conn.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
-
- /**
- * 获取连接池方法
- */
- public static DataSource getDataSource(){
- return ds;
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/com/mesasoft/cn/util/MariaDbBase.java b/src/main/java/com/mesasoft/cn/util/MariaDbBase.java
deleted file mode 100644
index 777ec44..0000000
--- a/src/main/java/com/mesasoft/cn/util/MariaDbBase.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.mesasoft.cn.util;
-
-import com.mesasoft.cn.sketch.config.ApplicationConfig;
-import org.apache.log4j.Logger;
-
-import java.sql.*;
-import java.util.Date;
-import java.util.Properties;
-
-/**
- * Created with IntelliJ IDEA.
- * User: joy
- * Date: 2021/12/28
- * Time: 2:56 PM
- * Description: No Description
- */
-public class MariaDbBase {
-
- private static final Logger LOG = Logger.getLogger(MariaDbBase.class);
- private static final Properties props = new Properties();
-
- private final Statement statement;
-
- public MariaDbBase(Connection conn, Statement stat) {
- statement = stat;
- }
-
- /**
- * 执行写入sql
- */
- public void writeSqlExecute(String sql){
- try {
- statement.executeUpdate(sql);
- } catch (SQLIntegrityConstraintViolationException e){
- LOG.error("Duplicated entry for key 'PRIMARY'");
- } catch (SQLException exception) {
- LOG.error("Sql : " + sql);
- exception.printStackTrace();
- }
- }
-
- /**
- * 执行查询sql
- */
- public ResultSet querySqlExecute(String sql){
- ResultSet set = null;
- try {
- set = statement.executeQuery(sql);
- } catch (SQLException exception) {
- exception.printStackTrace();
- }
- return set;
- }
-
-
- /**
- * 获得指定表格、按指定时间字段的过期记录
- * @param tableName 库表名称
- * @param timeColumnName 时间列名
- * @return 查询结果
- */
- public ResultSet getExpiredRecord(String tableName, String timeColumnName){
- Date lastUpdateTime = new Timestamp(getExpiredTime(ApplicationConfig.UPDATE_EXPIRED_DAY).getTime());
-
- String resSql = "SELECT *"
- + " FROM " + ApplicationConfig.DATABASE + "." + tableName
- + " WHERE " + timeColumnName + " < '" + lastUpdateTime + '\'';
-
- LOG.debug("Update task: expired query sql" + resSql);
-
- return querySqlExecute(resSql);
- }
-
- /**
- * TODO: getUnlabeledRecord() 考虑多个来源的情况
- */
-
- /**
- * 获得过期时间, 当前时间的expiredRangeDays天之前的日期为过期日期
- */
- public static Date getExpiredTime(int expiredRangeDays){
- return new Timestamp(TimeUtils.getStartOfDay(-expiredRangeDays).getTime());
- }
-}
diff --git a/src/main/java/com/mesasoft/cn/util/TimeUtils.java b/src/main/java/com/mesasoft/cn/util/TimeUtils.java
deleted file mode 100644
index 5e128dd..0000000
--- a/src/main/java/com/mesasoft/cn/util/TimeUtils.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.mesasoft.cn.util;
-
-import java.util.Calendar;
-import java.util.Date;
-
-/**
- * @author yjy
- * @version 1.0
- * @date 2021/2/25 11:26 上午
- */
-public class TimeUtils {
- public static final Long HOUR_TO_MILLISECONDS = 3600000L;
- public static final Long DAY_TO_MILLSEDONDS = 86400000L;
- public static final Integer SECOND_TO_MILLSEDONDS = 1000;
-
-
- /**
- * 获得当前时间小时的起始(0分钟)时间
- */
- public static Date getStartOfHour() {
- return getStartOfHour(0);
- }
- public static Date getStartOfHour(Integer offset) {
- Calendar ca = Calendar.getInstance();
- ca.add(Calendar.HOUR, offset);
- ca.set(Calendar.MINUTE, 0);
- ca.set(Calendar.SECOND, 0);
- ca.set(Calendar.MILLISECOND, 0);
- return ca.getTime();
- }
-
- /**
- * 获得当前日期的起始(0时)时间
- */
- public static Date getStartOfDay() {
- return getStartOfDay(0);
- }
- public static Date getStartOfDay(Integer bias) {
- Calendar ca = Calendar.getInstance();
- ca.add(Calendar.DATE, bias);
- ca.set(Calendar.HOUR, -12);
- ca.set(Calendar.MINUTE, 0);
- ca.set(Calendar.SECOND, 0);
- ca.set(Calendar.MILLISECOND, 0);
- return ca.getTime();
- }
-
- public static Date getStartOfMonth() {
- Calendar ca = Calendar.getInstance();
- ca.set(Calendar.DATE, 1);
- ca.set(Calendar.HOUR, -12);
- ca.set(Calendar.MINUTE, 0);
- ca.set(Calendar.SECOND, 0);
- ca.set(Calendar.MILLISECOND, 0);
- return ca.getTime();
- }
-
-}
-
diff --git a/src/main/java/com/mesasoft/cn/util/ValidationUtils.java b/src/main/java/com/mesasoft/cn/util/ValidationUtils.java
deleted file mode 100644
index 013008e..0000000
--- a/src/main/java/com/mesasoft/cn/util/ValidationUtils.java
+++ /dev/null
@@ -1,202 +0,0 @@
-package com.mesasoft.cn.util;
-
-import com.mesasoft.cn.sketch.api.BrightCloud;
-import com.mesasoft.cn.sketch.config.ApplicationConfig;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
-import sun.net.util.IPAddressUtil;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Objects;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class ValidationUtils {
- private static final Logger LOG = Logger.getLogger(ValidationUtils.class);
-
- /**
- * 获取二级域名
- **/
- public static String getSecDomain(String fqdnOrUrl){
- String filePath = Objects.requireNonNull(BrightCloud.class.getClassLoader()
- .getResource(ApplicationConfig.TLD_FILE)).getFile();
- HashMap> maps = readTopDomainFile(filePath);
- try {
- String[] split = fqdnOrUrl.split("\\.");
- String secDomain = null;
- for (int i = split.length - 1; i >= 0; i--) {
- int maps_index = split.length - (i + 1);
- HashMap innerMap = maps.get("map_id_" + maps_index);
- HashMap fullTop = maps.get("full");
- if (!(innerMap.containsKey(split[i]))) {
- String strSec = "";
- for (int j = i; j < split.length; j++) {
- strSec += (split[j] + ".");
- }
- secDomain = strSec.substring(0, strSec.length() - 1);
- if (fullTop.containsKey(getTopFromSecDomain(secDomain))) {
- break;
- } else {
- while (!fullTop.containsKey(getTopFromSecDomain(secDomain)) && getTopFromSecDomain(secDomain).contains(".")) {
- secDomain = getTopFromSecDomain(secDomain);
- }
- break;
- }
- }
- }
- // 右匹配为顶级域名
- if (secDomain == null){
- secDomain = fqdnOrUrl;
- }
- return secDomain;
- } catch (Exception e) {
- LOG.error("urlDomain:" + fqdnOrUrl);
- e.printStackTrace();
- return "---no---return---";
- }
- }
-
- public static List getSecDomain(List fqdnOrUrls) {
- HashMap> maps = readTopDomainFile(ApplicationConfig.TLD_FILE);
- List secDomainList = new ArrayList<>();
- for (String oriDomain : fqdnOrUrls) {
- String secDomain = getSecDomain(oriDomain);
- if (StringUtils.isNotBlank(secDomain) && !("---no---return---".equals(secDomain))) {
- secDomainList.add(secDomain);
- } else {
- System.out.println(oriDomain);
- }
- }
- return secDomainList;
- }
-
- public static String getTopFromSecDomain(String secDomain) {
- String quFirstDian = secDomain;
- if (secDomain.contains(".")) {
- quFirstDian = secDomain.substring(secDomain.indexOf(".")).substring(1);
- }
- return quFirstDian;
- }
-
- public static HashMap> readTopDomainFile(String filePath) {
- HashMap> maps = makeHashMap(filePath);
- try {
- String encoding = "UTF-8";
- File file = new File(filePath);
- if (file.isFile() && file.exists()) {
- InputStreamReader read = new InputStreamReader(
- new FileInputStream(file), encoding);
- BufferedReader bufferedReader = new BufferedReader(read);
- String lineTxt = null;
- while ((lineTxt = bufferedReader.readLine()) != null) {
- HashMap fullTop = maps.get("full");
- fullTop.put(lineTxt, lineTxt);
- maps.put("full", fullTop);
- String[] split = lineTxt.split("\\.");
- for (int i = split.length - 1; i >= 0; i--) {
- int maps_index = split.length - (i + 1);
- HashMap innerMap = maps.get("map_id_" + maps_index);
- innerMap.put(split[i], split[i]);
- maps.put("map_id_" + maps_index, innerMap);
- }
- }
- read.close();
- } else {
- LOG.error("TopDomainUtils>=>readTopDomainFile filePath is wrong--->{" + filePath + "}<---");
- }
- } catch (Exception e) {
- LOG.error("TopDomainUtils>=>readTopDomainFile get filePathData error--->{" + e + "}<---");
- e.printStackTrace();
- }
- return maps;
- }
-
- public static HashMap> makeHashMap(String filePath) {
- int maxLength = FileUtils.getMaxLength(filePath);
- HashMap> maps = new HashMap>();
- for (int i = 0; i < maxLength; i++) {
- maps.put("map_id_" + i, new HashMap());
- }
- maps.put("full", new HashMap());
- return maps;
- }
-
- public static List getChecked(List objectList, String type){
- if (type.equals("ip")){
- return getCheckedIps(objectList);
- }
- if (type.equals("domain")){
- return getCheckedFqdns(objectList);
- }
- LOG.error("Wrong type to be checked: " + type);
- return objectList;
- }
-
- public static List getCheckedFqdns(List fqdns){
- List res = new ArrayList<>();
- for (String fqdn:fqdns){
- //去端口号
- fqdn = fqdn.split(":")[0];
- // 去重 & 校验
- if (isValidDomain(fqdn) && !res.contains(fqdn)){
- res.add(fqdn.toLowerCase());
- } else {
- LOG.debug("Bad or duplicated fqdn:" + fqdn);
- }
- }
- return res;
- }
-
- public static List getCheckedIps(List ipList){
- List res = new ArrayList<>();
- for (String ip:ipList){
- //去端口号
- ip = ip.split(":")[0];
- // 去重 & 校验
- if (isValidIp(ip) && !res.contains(ip)){
- res.add(ip.toLowerCase());
- } else {
- LOG.debug("Bad or duplicated fqdn:" + ip);
- }
- }
- return res;
- }
-
- public static boolean isValidIp(String ip){
- boolean iPv4LiteralAddress = IPAddressUtil.isIPv4LiteralAddress(ip);
- boolean iPv6LiteralAddress = IPAddressUtil.isIPv6LiteralAddress(ip);
- return iPv4LiteralAddress || iPv6LiteralAddress;
- }
-
- private static boolean isValidDomain(String str)
- {
- String regex = "^((?!-)[A-Za-z0-9-_]"
- + "{1,63}(? ValueConsts.TWO_INT) {
- SketchApplication.settings.setJsonObject(config);
+ WebSketchApplication.settings.setJsonObject(config);
//打包成jar之后无法修改config.json文件
try {
- FileExecutor.saveFile(NetUtils.urlToString(SketchApplication.class.getResource(DefaultValues
- .SETTING_PATH)), SketchApplication.settings.toString());
+ FileExecutor.saveFile(NetUtils.urlToString(WebSketchApplication.class.getResource(DefaultValues
+ .SETTING_PATH)), WebSketchApplication.settings.toString());
} catch (IOException e) {
logger.error(e.getMessage());
return "{\"message\":\"internal error, cannot save\"}";
@@ -70,7 +70,7 @@ public class ConfigController {
public String getAll() {
User user = (User) request.getSession().getAttribute(ValueConsts.USER_STRING);
if (user.getPermission() > ValueConsts.TWO_INT) {
- return SketchApplication.settings.toString();
+ return WebSketchApplication.settings.toString();
} else {
return "{\"message\":\"permission denied\"}";
}
diff --git a/src/main/java/com/mesasoft/cn/web/controller/FileController.java b/src/main/java/com/mesasoft/cn/web/controller/FileController.java
index 6ae6d57..6452b22 100644
--- a/src/main/java/com/mesasoft/cn/web/controller/FileController.java
+++ b/src/main/java/com/mesasoft/cn/web/controller/FileController.java
@@ -2,13 +2,13 @@ package com.mesasoft.cn.web.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.SketchApplication;
-import com.mesasoft.cn.modules.constant.ConfigConsts;
-import com.mesasoft.cn.util.BeanUtils;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.annotation.AuthInterceptor;
import com.mesasoft.cn.entity.User;
import com.mesasoft.cn.enums.InterceptorLevel;
+import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.mesasoft.cn.service.IFileService;
+import com.mesasoft.cn.util.BeanUtils;
import com.mesasoft.cn.util.ControllerUtils;
import com.zhazhapan.modules.constant.ValueConsts;
import com.zhazhapan.util.Checker;
@@ -90,7 +90,7 @@ public class FileController {
@RequestMapping(value = "/all", method = RequestMethod.GET)
public String getAll(int offset, int categoryId, String orderBy, String search) {
User user = (User) request.getSession().getAttribute(ValueConsts.USER_STRING);
- boolean canGet = SketchApplication.settings.getBooleanUseEval(ConfigConsts.ANONYMOUS_VISIBLE_OF_SETTING) ||
+ boolean canGet = WebSketchApplication.settings.getBooleanUseEval(ConfigConsts.ANONYMOUS_VISIBLE_OF_SETTING) ||
(Checker.isNotNull(user) && user.getIsVisible() == 1);
if (canGet) {
int userId = Checker.isNull(user) ? 0 : user.getId();
diff --git a/src/main/java/com/mesasoft/cn/web/controller/UploadedController.java b/src/main/java/com/mesasoft/cn/web/controller/UploadedController.java
index a99827f..b3d402e 100644
--- a/src/main/java/com/mesasoft/cn/web/controller/UploadedController.java
+++ b/src/main/java/com/mesasoft/cn/web/controller/UploadedController.java
@@ -3,7 +3,6 @@ package com.mesasoft.cn.web.controller;
import com.mesasoft.cn.annotation.AuthInterceptor;
import com.mesasoft.cn.enums.InterceptorLevel;
import com.mesasoft.cn.service.IUploadedService;
-import com.zhazhapan.util.Formatter;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -34,6 +33,6 @@ public class UploadedController {
@AuthInterceptor(InterceptorLevel.ADMIN)
@RequestMapping(value = "all", method = RequestMethod.GET)
public String getAll(String user, String file, String category, int offset) {
- return Formatter.listToJson(uploadedService.list(user, file, category, offset));
+ return com.zhazhapan.util.Formatter.listToJson(uploadedService.list(user, file, category, offset));
}
}
diff --git a/src/main/java/com/mesasoft/cn/web/controller/UserController.java b/src/main/java/com/mesasoft/cn/web/controller/UserController.java
index a76aad9..ab3f380 100644
--- a/src/main/java/com/mesasoft/cn/web/controller/UserController.java
+++ b/src/main/java/com/mesasoft/cn/web/controller/UserController.java
@@ -2,15 +2,15 @@ package com.mesasoft.cn.web.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
-import com.mesasoft.cn.SketchApplication;
-import com.mesasoft.cn.modules.constant.ConfigConsts;
-import com.mesasoft.cn.modules.constant.DefaultValues;
+import com.mesasoft.cn.WebSketchApplication;
import com.mesasoft.cn.annotation.AuthInterceptor;
import com.mesasoft.cn.config.TokenConfig;
import com.mesasoft.cn.entity.Result;
import com.mesasoft.cn.entity.ResultEntity;
import com.mesasoft.cn.entity.User;
import com.mesasoft.cn.enums.InterceptorLevel;
+import com.mesasoft.cn.modules.constant.ConfigConsts;
+import com.mesasoft.cn.modules.constant.DefaultValues;
import com.mesasoft.cn.service.IUserService;
import com.mesasoft.cn.util.ControllerUtils;
import com.zhazhapan.modules.constant.ValueConsts;
@@ -102,7 +102,7 @@ public class UserController {
public String updateBasicInfo(String avatar, String realName, String email, String code) {
User user = (User) request.getSession().getAttribute(ValueConsts.USER_STRING);
jsonObject.put("message", "保存成功");
- boolean emilVerify = SketchApplication.settings.getBooleanUseEval(ConfigConsts.EMAIL_VERIFY_OF_SETTINGS);
+ boolean emilVerify = WebSketchApplication.settings.getBooleanUseEval(ConfigConsts.EMAIL_VERIFY_OF_SETTINGS);
if (Checker.isNotEmpty(email) && !email.equals(user.getEmail())) {
if (!emilVerify || isCodeValidate(code)) {
if (userService.emailExists(email)) {
@@ -192,7 +192,7 @@ public class UserController {
@AuthInterceptor(InterceptorLevel.NONE)
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(String username, String email, String password, String code) {
- boolean emilVerify = SketchApplication.settings.getBooleanUseEval(ConfigConsts.EMAIL_VERIFY_OF_SETTINGS);
+ boolean emilVerify = WebSketchApplication.settings.getBooleanUseEval(ConfigConsts.EMAIL_VERIFY_OF_SETTINGS);
jsonObject.put("status", "error");
if (!emilVerify || isCodeValidate(code)) {
if (userService.usernameExists(username)) {
diff --git a/src/main/resources/application-sketch.properties b/src/main/resources/application-sketch.properties
index 36f070c..c7048e6 100644
--- a/src/main/resources/application-sketch.properties
+++ b/src/main/resources/application-sketch.properties
@@ -1,85 +1,52 @@
-driverClassName=org.mariadb.jdbc.Driver
-url=jdbc:mariadb://192.168.44.12:3306/web_sketch_v2
-username=root
-password=galaxy2019
-initialSize=5
-maxActive=10
-maxWait=1000
+#datasource
+spring.datasource.url=jdbc:mysql://192.168.44.12:3306/efo?useUnicode=true&characterEncoding=utf-8&useSSL=true
+spring.datasource.username=root
+spring.datasource.password=galaxy2019
-validationQuery=SELECT 1
-
-####################################################
################### application ####################
-####################################################
-query.types.domain = domain_category, domain_whois
-query.types.ip = dns_server
query.output.dir = /home/bigdata/domain/output_file
-# 数据库更新定时任务时间间隔1d 1000 * 3600 * 24 = 86400000
-update.expired.day = 7
-# offline读取批处理量
+# offline\u8BFB\u53D6\u6279\u5904\u7406\u91CF
query.readin.batch = 10000
-# 打印进度日志的查询条数
+# \u6253\u5370\u8FDB\u5EA6\u65E5\u5FD7\u7684\u67E5\u8BE2\u6761\u6570
query.log.file.line.interval = 10000
-####################################################
################### mariadb ########################
-####################################################
database = web_sketch_v2
tablename.domain.category = domain_category_reputation
tablename.domain.whois = domain_whois
-tablename.dns.server =
db.query.batch.size = 10000
-####################################################
###################### api #########################
-####################################################
-
##### bright cloud #######
-bc.oemid = GeedgeNet
-bc.deviceid = TSG-Dev
-bc.uid = GN0001
-bc.url = https://api.bcti.brightcloud.com/1.0/url/getinfo
-bc.method = POST
+bright-cloud.oemid = GeedgeNet
+bright-cloud.deviceid = TSG-Dev
+bright-cloud.uid = GN0001
+bright-cloud.url = https://api.bcti.brightcloud.com/1.0/url/getinfo
+bright-cloud.method = POST
-bc.queryType = getinfo
-bc.isa1cat = 1
-bc.isReputation = 1
-# 返回json格式
-bc.isxml = 0
-# bc api单次查询url长度限制 API最高限制
-bc.maximum.query.num = 100
-bc.cateinfo.filepath = categoryinfo.json
-bc.usereport.filepath = bright_cloud_query_count.csv
+bright-cloud.queryType = getinfo
+bright-cloud.isa1cat = 1
+bright-cloud.isReputation = 1
+#bright-cloud\u8FD4\u56DEjson\u683C\u5F0F
+bright-cloud.isxml = 0
+# api\u5355\u6B21\u67E5\u8BE2url\u957F\u5EA6\u9650\u5236 API\u6700\u9AD8\u9650\u5236
+bright-cloud.maximum-query-num = 100
+bright-cloud.cateinfo-filepath = categoryinfo.json
+bright-cloud.usereport-filepath = bright_cloud_query_count.csv
######### chinaz #########
-chinaz.url.single = https://apidatav2.chinaz.com/single/whois
-chinaz.url.batch = https://apidatav2.chinaz.com/batch/whois
+chinaz.url-single = https://apidatav2.chinaz.com/single/whois
+chinaz.url-batch = https://apidatav2.chinaz.com/batch/whois
chinaz.key = ffc9be4141bd49a093ed0185a54dc6a2
-chinaz.maximum.query.num = 50
-chinaz.usereport.filepath = chinaz_query_count.csv
+chinaz.maximum-query-num = 50
+chinaz.usereport-filepath = chinaz_query_count.csv
-####################################################
-###################### 其他 #########################
-####################################################
-tld.file = public_suffix_list_only.dat
+###################### \u5176\u4ED6 #########################
+#\u9876\u7EA7\u57DF\u540D
+sketch.tld.file = public_suffix_list_only.dat
+sketch.path.admin=C:\\test
+sketch.path.user=C:\\test\\1\\
-sketch.datasource.druid.filters=stat
-sketch.datasource.druid.driverClassName=com.mysql.jdbc.Driver
-sketch.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&useSSL=false
-sketch.datasource.druid.username=root
-sketch.datasource.druid.password=12311
-sketch.datasource.druid.initialSize=1
-sketch.datasource.druid.minIdle=1
-sketch.datasource.druid.maxActive=10
-sketch.datasource.druid.maxWait=60000
-sketch.datasource.druid.timeBetweenEvictionRunsMillis=60000
-sketch.datasource.druid.minEvictableIdleTimeMillis=300000
-sketch.datasource.druid.validationQuery=SELECT 'x'
-sketch.datasource.druid.testWhileIdle=true
-sketch.datasource.druid.testOnBorrow=false
-sketch.datasource.druid.testOnReturn=false
-sketch.datasource.druid.poolPreparedStatements=false
-sketch.datasource.druid.maxPoolPreparedStatementPerConnectionSize=10
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 1172ca8..b2101fa 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,14 +1,43 @@
server.port=8196
-mybatis.type-aliases-package=com.mesasoft.cn.entity
+spring.profiles.include=sketch
+
+mybatis.type-aliases-package=com.mesasoft.cn.entity,com.mesasoft.cn.sketch.entity
+mybatis.mapper-locations=classpath:mapper/*.xml
+
+spring.datasource.name=druidDataSource
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
-spring.datasource.url=jdbc:mysql://192.168.44.12:3306/efo?useUnicode=true&characterEncoding=utf-8&useSSL=true
-spring.datasource.username=root
-spring.datasource.password=galaxy2019
+spring.datasource.druid.filters=stat,wall,slf4j,config
+spring.datasource.druid.maxActive=100
+spring.datasource.druid.initialSize=1
+spring.datasource.druid.maxWait=60000
+spring.datasource.druid.minIdle=1
+spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
+spring.datasource.druid.minEvictableIdleTimeMillis=300000
+spring.datasource.druid.validationQuery=select 'x'
+spring.datasource.druid.testWhileIdle=true
+spring.datasource.druid.testOnBorrow=false
+spring.datasource.druid.testOnReturn=false
+spring.datasource.druid.poolPreparedStatements=true
+spring.datasource.druid.maxOpenPreparedStatements=50
+spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
+spring.datasource.druid.web-stat-filter.enabled=true
+spring.datasource.druid.stat-view-servlet.enabled=true
+spring.datasource.druid.stat-view-servlet.login-username=test
+spring.datasource.druid.stat-view-servlet.login-password=test
+spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
+spring.datasource.druid.stat-view-servlet.deny=
+
spring.jpa.show-sql=true
spring.servlet.multipart.max-file-size=1099511627776
spring.servlet.multipart.max-request-size=1099511627776
-spring.devtools.restart.enabled=false
+#\u70ED\u90E8\u7F72\u751F\u6548
+spring.devtools.restart.enabled=true
+#\u9875\u9762\u70ED\u90E8\u7F72
+spring.thymeleaf.cache=false
spring.devtools.restart.additional-paths=src/main
+#classpath\u76EE\u5F55\u4E0B\u7684WEB-INF\u6587\u4EF6\u5939\u5185\u5BB9\u4FEE\u6539\u4E0D\u91CD\u542F
+spring.devtools.restart.exclude=WEB-INF/**
#spring.profiles.active=prod
#spring.mvc.favicon.enabled=false
@@ -20,9 +49,9 @@ swagger.version=1.2
swagger.license=MIT
swagger.licenseUrl=https://opensource.org/licenses/MIT
swagger.termsOfServiceUrl=https://github.com/code4everything/efo
-swagger.contact.name=zhazhapan
-swagger.contact.url=https://github.zhazhapan.com
-swagger.contact.email=zhazhapan.com
+swagger.contact.name=e
+swagger.contact.url=https://github.e.com
+swagger.contact.email=.com
swagger.base-package=com.mesasoft.cn
swagger.base-path=/**
swagger.exclude-path=/error, /ops/**
@@ -36,7 +65,3 @@ swagger.global-response-message.get[1].modelRef=ERROR
swagger.global-response-message.post[0].code=500
swagger.global-response-message.post[0].message=500post
swagger.global-response-message.post[0].modelRef=ERROR
-
-
-sketch.path.admin=C:\\test
-sketch.path.user=C:\\test\\1\\
\ No newline at end of file
diff --git a/src/main/resources/config.json b/src/main/resources/config.json
index d862a3c..542b973 100644
--- a/src/main/resources/config.json
+++ b/src/main/resources/config.json
@@ -77,8 +77,8 @@
"emailConfig": {
"host": "",
"port": 587,
- "personal": "efo",
- "from": "efo-admin@qq.com",
+ "personal": "webskt",
+ "from": "webskt-admin@qq.com",
"key": "123456",
"ssl": false
},
diff --git a/src/main/resources/sketch.properties b/src/main/resources/sketch.properties
deleted file mode 100644
index 36f070c..0000000
--- a/src/main/resources/sketch.properties
+++ /dev/null
@@ -1,85 +0,0 @@
-driverClassName=org.mariadb.jdbc.Driver
-url=jdbc:mariadb://192.168.44.12:3306/web_sketch_v2
-username=root
-password=galaxy2019
-initialSize=5
-maxActive=10
-maxWait=1000
-
-validationQuery=SELECT 1
-
-####################################################
-################### application ####################
-####################################################
-query.types.domain = domain_category, domain_whois
-query.types.ip = dns_server
-query.output.dir = /home/bigdata/domain/output_file
-
-# 数据库更新定时任务时间间隔1d 1000 * 3600 * 24 = 86400000
-update.expired.day = 7
-# offline读取批处理量
-query.readin.batch = 10000
-
-# 打印进度日志的查询条数
-query.log.file.line.interval = 10000
-
-####################################################
-################### mariadb ########################
-####################################################
-database = web_sketch_v2
-tablename.domain.category = domain_category_reputation
-tablename.domain.whois = domain_whois
-tablename.dns.server =
-db.query.batch.size = 10000
-
-####################################################
-###################### api #########################
-####################################################
-
-##### bright cloud #######
-bc.oemid = GeedgeNet
-bc.deviceid = TSG-Dev
-bc.uid = GN0001
-bc.url = https://api.bcti.brightcloud.com/1.0/url/getinfo
-bc.method = POST
-
-bc.queryType = getinfo
-bc.isa1cat = 1
-bc.isReputation = 1
-# 返回json格式
-bc.isxml = 0
-# bc api单次查询url长度限制 API最高限制
-bc.maximum.query.num = 100
-bc.cateinfo.filepath = categoryinfo.json
-bc.usereport.filepath = bright_cloud_query_count.csv
-
-######### chinaz #########
-chinaz.url.single = https://apidatav2.chinaz.com/single/whois
-chinaz.url.batch = https://apidatav2.chinaz.com/batch/whois
-chinaz.key = ffc9be4141bd49a093ed0185a54dc6a2
-chinaz.maximum.query.num = 50
-chinaz.usereport.filepath = chinaz_query_count.csv
-
-####################################################
-###################### 其他 #########################
-####################################################
-tld.file = public_suffix_list_only.dat
-
-
-sketch.datasource.druid.filters=stat
-sketch.datasource.druid.driverClassName=com.mysql.jdbc.Driver
-sketch.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&useSSL=false
-sketch.datasource.druid.username=root
-sketch.datasource.druid.password=12311
-sketch.datasource.druid.initialSize=1
-sketch.datasource.druid.minIdle=1
-sketch.datasource.druid.maxActive=10
-sketch.datasource.druid.maxWait=60000
-sketch.datasource.druid.timeBetweenEvictionRunsMillis=60000
-sketch.datasource.druid.minEvictableIdleTimeMillis=300000
-sketch.datasource.druid.validationQuery=SELECT 'x'
-sketch.datasource.druid.testWhileIdle=true
-sketch.datasource.druid.testOnBorrow=false
-sketch.datasource.druid.testOnReturn=false
-sketch.datasource.druid.poolPreparedStatements=false
-sketch.datasource.druid.maxPoolPreparedStatementPerConnectionSize=10
\ No newline at end of file
diff --git a/src/main/resources/style.scss b/src/main/resources/style.scss
deleted file mode 100644
index 99890d0..0000000
--- a/src/main/resources/style.scss
+++ /dev/null
@@ -1,358 +0,0 @@
-@import "assets/sketch/css/font";
-// -------- Variables ----------
-$fontLight: 300;
-$fontBold: 600;
-$desktop: 1024px;
-$tablet: 768px;
-$mobile: 576px;
-$primary-color: #03A2DC;
-$secondary-color: #fff6bb;
-$light-color: #ffffff;
-$dark-color: #555555;
-$alt-bg-color: #f9f9f9;
-$slider-bg-color: #ccc;
-$tableHoverColor: #f9f9f9;
-
-
-// --------Mixins ------------
-@mixin mQ($size) {
- @media (max-width: $size) {
- @content;
- }
-}
-// -------- Normalize ----------
-* {
- margin: 0;
- padding: 0;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-ul {
- margin: 0;
-}
-
-button,
-input[type='button'] {
- cursor: pointer;
-}
-
-button:focus,
-input:focus,
-textarea:focus {
- outline: none;
-}
-
-input, textarea {
- border: none;
-}
-
-button {
- border: none;
- background: none;
-}
-
-img {
- max-width: 100%;
- height: auto;
-}
-
-p {
- margin: 0;
-}
-
-.align_item_center {
- align-items: center;
-}
-
-a,
-a:hover,
-a:active,
-a:visited {
- text-decoration: none;
-}
-// ------- Typo ------
-
-body {
- font-family: "Poppins", arial, sans-serif;
- font-weight: 300;
- line-height: 1.625;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- color: $dark-color;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- color: $dark-color;
- font-weight: 600;
- margin: 0;
- line-height: 1.2;
-}
-
-h1 {
- font-size: 36px;
-}
-
-h2 {
- font-size: 30px;
-}
-
-h3 {
- font-size: 24px;
-}
-
-h4 {
- font-size: 18px;
-}
-
-h5 {
- font-size: 15px;
-}
-
-h6 {
- font-size: 13px;
-}
-
-// ------- Styling ------
-.body_bg {
- width: 100%;
- height: 100%;
- position: absolute;
- z-index: -1;
- background-color: $alt-bg-color;
- clip-path: polygon(100% 100%, 0% 100%, 100% 0);
-}
-
-.conn {
- padding: 20px 0;
-}
-
-// ----- header ----
-#header {
- margin: 0px 0;
- margin-left: 20px;
- padding-bottom: 20px;
- border-bottom: 5px solid $alt-bg-color;
-
- @include mQ($tablet) {
- justify-content: center;
- }
-
- @include mQ($mobile) {
- margin-left: 10px;
- flex-direction: column;
- }
-
- // -- logo P --
- .logo_p {
- //background-color: $primary-color;
- display: flex;
- justify-content: center;
- align-items: center;
-
- img{
- width: 65px;
- }
- }
- // --- Heading Title --
- .heading_title_p {
- margin-left: 20px;
-
- @include mQ($mobile) {
- margin-left: 0;
- margin-top: 20px;
- }
-
- h2 {
- font-size: 22px;
-
- @include mQ($mobile) {
- text-align: center;
- }
- }
- }
-}
-
-// --- Upload
-.inputUploadP {
- margin: 5px 0px 0px 20px;
-
- @include mQ($mobile) {
- margin: 20px 10px;
- }
-
- .uploadForm {
- display: flex;
- align-items: center;
-
- .uploadFile {
- width: 0.1px;
- height: 0.1px;
- opacity: 0;
- overflow: hidden;
- position: absolute;
- z-index: -1;
- }
-
- svg{
- fill: $light-color;
- }
-
- .uploadFile + label {
- font-size: 1em;
- font-weight: 700;
- color: $light-color;
- background-color: $primary-color;
- display: inline-block;
- transition: .2s ease;
- padding: 8px 20px;
- border-radius: 3px;
- cursor: pointer;
- }
-
- .uploadFile:focus + label,
- .uploadFile + label:hover {
- background-color: $dark-color;
- }
-
- .uploadFile:focus + label {
- outline: 1px dotted $dark-color;
- outline: -webkit-focus-ring-color auto 5px;
- }
-
- .uploadFile + label * {
- pointer-events: none;
- }
-
- .js .uploadFile {
- width: 0.1px;
- height: 0.1px;
- opacity: 0;
- overflow: hidden;
- position: absolute;
- z-index: -1;
- }
-
- .no-js .uploadFile + label {
- display: none;
- }
-
- .uploadBtn_P {
- margin-top: -7px;
- margin-left: 10px;
-
- .uploadBtn {
- transition: .2s ease;
-
- &:hover {
- background-color: $secondary-color;
- color: var(--dark-color);
- border: 1px solid $dark-color;
- }
-
- i {
- padding-right: 10px;
- }
- }
- }
-
- }
-}
-// ---- BackBtn P ---
-.backBtn_p {
- margin: 10px 0px 0px 20px;
-
- @include mQ($mobile) {
- margin: 20px 10px;
- }
-
- a {
- font-size: 1.3em;
- display: flex;
- align-items: center;
- transition: .2s ease;
- width: 150px;
- color: $primary-color;
-
- &:hover {
- color: $dark-color;
-
- i {
- color: $dark-color;
- }
- }
-
- i {
- padding-right: 10px;
- font-size: 1.5em;
-
- }
- }
-}
-
-// -- Table - P
-.table_p {
- //margin: 20px;
- //margin-top: 0;
- //width: calc(100% - 40px);
-
- .table-hover tbody tr:hover td, .table-hover tbody tr:hover th {
- background-color: $tableHoverColor;
- }
-
- // th {
- // @include mQ($mobile) {
- // font-size: .9em;
- // }
- // }
-
- td {
- font-size: .95em;
- vertical-align: middle;
-
- &:nth-child(1) {
- text-align: center;
- }
- }
-
- .file_ic, .folder_ic {
- color: $primary-color;
- font-size: 1.5em;
- transition: .2s ease;
-
- &:hover {
- color: #0056b3;
- }
- }
-
- @include mQ($mobile) {
- margin: 20px 10px;
- width: calc(100% - 20px);
- }
-}
-
-
-#tableData > tbody > tr > td {
- padding: 0;
- height: 20px;
-}
-
-.dataTables_filter input {
- border: 1px solid $dark-color;
- padding: 3px 20px;
-}
-
-// -- Footer --
-footer {
- text-align: center;
- font-size: .8em;
- font-weight: bold;
- margin: 30px 0;
- margin-bottom: 0;
-}
\ No newline at end of file
diff --git a/src/test/java/com/mesasoft/cn/SketchApplicationTest.java b/src/test/java/com/mesasoft/cn/SketchApplicationTest.java
deleted file mode 100644
index 25e262b..0000000
--- a/src/test/java/com/mesasoft/cn/SketchApplicationTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mesasoft.cn;
-
-import com.zhazhapan.config.JsonParser;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import java.io.IOException;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class SketchApplicationTest {
-
- public static void setSettings() {
- try {
- SketchApplication.settings = new JsonParser(SketchApplicationTest.class.getResource("/config.json"));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/src/test/java/com/mesasoft/cn/common/CommonTest.java b/src/test/java/com/mesasoft/cn/common/CommonTest.java
index ced07d6..21b0e4a 100644
--- a/src/test/java/com/mesasoft/cn/common/CommonTest.java
+++ b/src/test/java/com/mesasoft/cn/common/CommonTest.java
@@ -1,7 +1,7 @@
package com.mesasoft.cn.common;
-import com.mesasoft.cn.SketchApplication;
-import com.mesasoft.cn.SketchApplicationTest;
+import com.mesasoft.cn.WebSketchApplication;
+import com.mesasoft.cn.WebSketchApplicationTest;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import com.zhazhapan.util.FileExecutor;
import com.zhazhapan.util.Formatter;
@@ -19,8 +19,8 @@ public class CommonTest {
@Test
public void testSendEmail() throws Exception {
- SketchApplicationTest.setSettings();
- MailSender.config(SketchApplication.settings.getObjectUseEval(ConfigConsts.EMAIL_CONFIG_OF_SETTINGS));
+ WebSketchApplicationTest.setSettings();
+ MailSender.config(WebSketchApplication.settings.getObjectUseEval(ConfigConsts.EMAIL_CONFIG_OF_SETTINGS));
MailSender.sendMail("tao@zhazhapan.com", "test", "test");
}
diff --git a/src/test/java/com/mesasoft/cn/common/SketchTest.java b/src/test/java/com/mesasoft/cn/common/SketchTest.java
index ad2aea4..e89920c 100644
--- a/src/test/java/com/mesasoft/cn/common/SketchTest.java
+++ b/src/test/java/com/mesasoft/cn/common/SketchTest.java
@@ -12,9 +12,56 @@ public class SketchTest {
@Test
public void testSendEmail() throws Exception {
- String searchPath = "D://test//test";
- searchPath= searchPath.replace("\\\\","");
- searchPath =searchPath.replace("//","");
+ String searchPath = "D://test//test";
+ searchPath = searchPath.replace("\\\\", "");
+ searchPath = searchPath.replace("//", "");
System.err.println(searchPath);
}
+
+ @Test
+ public void domainQueryTest() throws Exception {
+// String objectType = args[0];
+// String queryType = args[1];
+// List queryObjects = Arrays.asList(args[2].split(","));
+// String username = args[4];
+// boolean isLocal = true;
+// if (args.length >= 3) {
+// isLocal = Boolean.parseBoolean(args[3]);
+// }
+
+// System.out.println(new ListQuery().getQueryResults(objectType, queryType, queryObjects, username, isLocal).toString());
+
+// JSONArray queryResults = new ListQuery().getQueryResults("domain",
+// "domain_category",
+// Arrays.asList("baidu.com", "cctv.com"),
+// "",
+// true);
+// System.err.println(queryResults.toJSONString());
+// String json = "{\"namespace\":\"log.session\",\"type\":\"record\",\"name\":\"session\",\"fields\":[{\"name\":\"common_log_id\",\"type\":\"long\"},{\"name\":\"common_service\",\"type\":\"long\"},{\"name\":\"common_recv_time\",\"type\":\"long\"},{\"name\":\"common_direction\",\"type\":\"long\"},{\"name\":\"common_l4_protocol\",\"type\":\"string\"},{\"name\":\"common_address_type\",\"type\":\"long\"},{\"name\":\"common_schema_type\",\"type\":\"string\"},{\"name\":\"common_policy_id\",\"type\":\"long\"},{\"name\":\"common_user_tags\",\"type\":\"string\"},{\"name\":\"common_action\",\"type\":\"long\"},{\"name\":\"common_sub_action\",\"type\":\"string\"},{\"name\":\"common_user_region\",\"type\":\"string\"},{\"name\":\"common_client_ip\",\"type\":\"string\"},{\"name\":\"common_client_port\",\"type\":\"long\"},{\"name\":\"common_internal_ip\",\"type\":\"string\"},{\"name\":\"common_entrance_id\",\"type\":\"long\"},{\"name\":\"common_device_id\",\"type\":\"string\"},{\"name\":\"common_egress_link_id\",\"type\":\"long\"},{\"name\":\"common_ingress_link_id\",\"type\":\"long\"},{\"name\":\"common_isp\",\"type\":\"string\"},{\"name\":\"common_device_tag\",\"type\":\"string\"},{\"name\":\"common_data_center\",\"type\":\"string\"},{\"name\":\"common_encapsulation\",\"type\":\"long\"},{\"name\":\"common_tunnels\",\"type\":\"string\"},{\"name\":\"common_sled_ip\",\"type\":\"string\"},{\"name\":\"common_device_group\",\"type\":\"string\"},{\"name\":\"common_app_behavior\",\"type\":\"string\"},{\"name\":\"common_client_location\",\"type\":\"string\"},{\"name\":\"common_client_asn\",\"type\":\"string\"},{\"name\":\"common_subscriber_id\",\"type\":\"string\"},{\"name\":\"common_imei\",\"type\":\"string\"},{\"name\":\"common_imsi\",\"type\":\"string\"},{\"name\":\"common_phone_number\",\"type\":\"string\"},{\"name\":\"common_server_ip\",\"type\":\"string\"},{\"name\":\"common_server_port\",\"type\":\"long\"},{\"name\":\"common_external_ip\",\"type\":\"string\"},{\"name\":\"common_server_location\",\"type\":\"string\"},{\"name\":\"common_server_asn\",\"type\":\"string\"},{\"name\":\"common_protocol_label\",\"type\":\"string\"},{\"name\":\"common_service_category\",\"type\":{\"type\":\"array\",\"items\":\"long\"}},{\"name\":\"common_app_label\",\"type\":\"string\"},{\"name\":\"common_app_id\",\"type\":\"string\"},{\"name\":\"common_userdefine_app_name\",\"type\":\"string\"},{\"name\":\"common_app_surrogate_id\",\"type\":\"string\"},{\"name\":\"common_l7_protocol\",\"type\":\"string\"},{\"name\":\"common_sessions\",\"type\":\"long\"},{\"name\":\"common_c2s_pkt_num\",\"type\":\"long\"},{\"name\":\"common_s2c_pkt_num\",\"type\":\"long\"},{\"name\":\"common_c2s_pkt_diff\",\"type\":\"long\"},{\"name\":\"common_s2c_pkt_diff\",\"type\":\"long\"},{\"name\":\"common_c2s_byte_diff\",\"type\":\"long\"},{\"name\":\"common_s2c_byte_diff\",\"type\":\"long\"},{\"name\":\"common_c2s_byte_num\",\"type\":\"long\"},{\"name\":\"common_s2c_byte_num\",\"type\":\"long\"},{\"name\":\"common_start_time\",\"type\":\"long\"},{\"name\":\"common_end_time\",\"type\":\"long\"},{\"name\":\"common_establish_latency_ms\",\"type\":\"long\"},{\"name\":\"common_con_duration_ms\",\"type\":\"long\"},{\"name\":\"common_stream_dir\",\"type\":\"long\"},{\"name\":\"common_address_list\",\"type\":\"string\"},{\"name\":\"common_has_dup_traffic\",\"type\":\"long\"},{\"name\":\"common_stream_error\",\"type\":\"string\"},{\"name\":\"common_stream_trace_id\",\"type\":\"long\"},{\"name\":\"common_link_info_c2s\",\"type\":\"string\"},{\"name\":\"common_link_info_s2c\",\"type\":\"string\"},{\"name\":\"common_packet_capture_file\",\"type\":\"string\"},{\"name\":\"common_c2s_ipfrag_num\",\"type\":\"long\"},{\"name\":\"common_s2c_ipfrag_num\",\"type\":\"long\"},{\"name\":\"common_c2s_tcp_lostlen\",\"type\":\"long\"},{\"name\":\"common_s2c_tcp_lostlen\",\"type\":\"long\"},{\"name\":\"common_c2s_tcp_unorder_num\",\"type\":\"long\"},{\"name\":\"common_s2c_tcp_unorder_num\",\"type\":\"long\"},{\"name\":\"common_c2s_pkt_retrans\",\"type\":\"long\"},{\"name\":\"common_s2c_pkt_retrans\",\"type\":\"long\"},{\"name\":\"common_c2s_byte_retrans\",\"type\":\"long\"},{\"name\":\"common_s2c_byte_retrans\",\"type\":\"long\"},{\"name\":\"common_tcp_client_isn\",\"type\":\"long\"},{\"name\":\"common_tcp_server_isn\",\"type\":\"long\"},{\"name\":\"common_mirrored_pkts\",\"type\":\"long\"},{\"name\":\"common_mirrored_bytes\",\"type\":\"long\"},{\"name\":\"common_first_ttl\",\"type\":\"long\"},{\"name\":\"common_processing_time\",\"type\":\"long\"},{\"name\":\"http_url\",\"type\":\"string\"},{\"name\":\"http_host\",\"type\":\"string\"},{\"name\":\"http_domain\",\"type\":\"string\"},{\"name\":\"http_request_line\",\"type\":\"string\"},{\"name\":\"http_response_line\",\"type\":\"string\"},{\"name\":\"http_request_header\",\"type\":\"string\"},{\"name\":\"http_response_header\",\"type\":\"string\"},{\"name\":\"http_request_content\",\"type\":\"string\"},{\"name\":\"http_response_content\",\"type\":\"string\"},{\"name\":\"http_request_body\",\"type\":\"string\"},{\"name\":\"http_response_body\",\"type\":\"string\"},{\"name\":\"http_request_body_key\",\"type\":\"string\"},{\"name\":\"http_response_body_key\",\"type\":\"string\"},{\"name\":\"http_proxy_flag\",\"type\":\"long\"},{\"name\":\"http_sequence\",\"type\":\"long\"},{\"name\":\"http_snapshot\",\"type\":\"string\"},{\"name\":\"http_cookie\",\"type\":\"string\"},{\"name\":\"http_referer\",\"type\":\"string\"},{\"name\":\"http_user_agent\",\"type\":\"string\"},{\"name\":\"http_request_content_length\",\"type\":\"string\"},{\"name\":\"http_request_content_type\",\"type\":\"string\"},{\"name\":\"http_response_content_length\",\"type\":\"string\"},{\"name\":\"http_response_content_type\",\"type\":\"string\"},{\"name\":\"http_content_length\",\"type\":\"string\"},{\"name\":\"http_content_type\",\"type\":\"string\"},{\"name\":\"http_set_cookie\",\"type\":\"string\"},{\"name\":\"http_version\",\"type\":\"string\"},{\"name\":\"http_response_latency_ms\",\"type\":\"long\"},{\"name\":\"http_session_duration_ms\",\"type\":\"long\"},{\"name\":\"http_action_file_size\",\"type\":\"long\"},{\"name\":\"mail_protocol_type\",\"type\":\"string\"},{\"name\":\"mail_account\",\"type\":\"string\"},{\"name\":\"mail_to_cmd\",\"type\":\"string\"},{\"name\":\"mail_from_cmd\",\"type\":\"string\"},{\"name\":\"mail_from\",\"type\":\"string\"},{\"name\":\"mail_to\",\"type\":\"string\"},{\"name\":\"mail_cc\",\"type\":\"string\"},{\"name\":\"mail_bcc\",\"type\":\"string\"},{\"name\":\"mail_subject\",\"type\":\"string\"},{\"name\":\"mail_subject_charset\",\"type\":\"string\"},{\"name\":\"mail_content\",\"type\":\"string\"},{\"name\":\"mail_content_charset\",\"type\":\"string\"},{\"name\":\"mail_attachment_name\",\"type\":\"string\"},{\"name\":\"mail_attachment_name_charset\",\"type\":\"string\"},{\"name\":\"mail_attachment_content\",\"type\":\"string\"},{\"name\":\"mail_eml_file\",\"type\":\"string\"},{\"name\":\"mail_snapshot\",\"type\":\"string\"},{\"name\":\"dns_message_id\",\"type\":\"long\"},{\"name\":\"dns_qr\",\"type\":\"long\"},{\"name\":\"dns_opcode\",\"type\":\"long\"},{\"name\":\"dns_aa\",\"type\":\"long\"},{\"name\":\"dns_tc\",\"type\":\"long\"},{\"name\":\"dns_rd\",\"type\":\"long\"},{\"name\":\"dns_ra\",\"type\":\"long\"},{\"name\":\"dns_rcode\",\"type\":\"long\"},{\"name\":\"dns_qdcount\",\"type\":\"long\"},{\"name\":\"dns_ancount\",\"type\":\"long\"},{\"name\":\"dns_nscount\",\"type\":\"long\"},{\"name\":\"dns_arcount\",\"type\":\"long\"},{\"name\":\"dns_qname\",\"type\":\"string\"},{\"name\":\"dns_qtype\",\"type\":\"long\"},{\"name\":\"dns_qclass\",\"type\":\"long\"},{\"name\":\"dns_cname\",\"type\":\"string\"},{\"name\":\"dns_sub\",\"type\":\"long\"},{\"name\":\"dns_rr\",\"type\":\"string\"},{\"name\":\"ssl_version\",\"type\":\"string\"},{\"name\":\"ssl_sni\",\"type\":\"string\"},{\"name\":\"ssl_san\",\"type\":\"string\"},{\"name\":\"ssl_cn\",\"type\":\"string\"},{\"name\":\"ssl_pinningst\",\"type\":\"long\"},{\"name\":\"ssl_intercept_state\",\"type\":\"long\"},{\"name\":\"ssl_passthrough_reason\",\"type\":\"string\"},{\"name\":\"ssl_server_side_latency\",\"type\":\"long\"},{\"name\":\"ssl_client_side_latency\",\"type\":\"long\"},{\"name\":\"ssl_server_side_version\",\"type\":\"string\"},{\"name\":\"ssl_client_side_version\",\"type\":\"string\"},{\"name\":\"ssl_cert_verify\",\"type\":\"long\"},{\"name\":\"ssl_error\",\"type\":\"string\"},{\"name\":\"ssl_con_latency_ms\",\"type\":\"long\"},{\"name\":\"ssl_ja3_fingerprint\",\"type\":\"string\"},{\"name\":\"ssl_ja3_hash\",\"type\":\"string\"},{\"name\":\"ssl_cert_issuer\",\"type\":\"string\"},{\"name\":\"ssl_cert_subject\",\"type\":\"string\"},{\"name\":\"quic_version\",\"type\":\"string\"},{\"name\":\"quic_sni\",\"type\":\"string\"},{\"name\":\"quic_user_agent\",\"type\":\"string\"},{\"name\":\"ftp_account\",\"type\":\"string\"},{\"name\":\"ftp_url\",\"type\":\"string\"},{\"name\":\"ftp_content\",\"type\":\"string\"},{\"name\":\"ftp_link_type\",\"type\":\"string\"},{\"name\":\"bgp_type\",\"type\":\"long\"},{\"name\":\"bgp_as_num\",\"type\":\"string\"},{\"name\":\"bgp_route\",\"type\":\"string\"},{\"name\":\"voip_calling_account\",\"type\":\"string\"},{\"name\":\"voip_called_account\",\"type\":\"string\"},{\"name\":\"voip_calling_number\",\"type\":\"string\"},{\"name\":\"voip_called_number\",\"type\":\"string\"},{\"name\":\"sip_call_id\",\"type\":\"string\"},{\"name\":\"sip_originator_description\",\"type\":\"string\"},{\"name\":\"sip_responder_description\",\"type\":\"string\"},{\"name\":\"sip_user_agent\",\"type\":\"string\"},{\"name\":\"sip_server\",\"type\":\"string\"},{\"name\":\"sip_originator_sdp_connect_ip\",\"type\":\"string\"},{\"name\":\"sip_originator_sdp_media_port\",\"type\":\"long\"},{\"name\":\"sip_originator_sdp_media_type\",\"type\":\"string\"},{\"name\":\"sip_originator_sdp_content\",\"type\":\"string\"},{\"name\":\"sip_responder_sdp_connect_ip\",\"type\":\"string\"},{\"name\":\"sip_responder_sdp_media_port\",\"type\":\"long\"},{\"name\":\"sip_responder_sdp_media_type\",\"type\":\"string\"},{\"name\":\"sip_responder_sdp_content\",\"type\":\"string\"},{\"name\":\"sip_duration_s\",\"type\":\"long\"},{\"name\":\"sip_bye\",\"type\":\"string\"},{\"name\":\"rtp_payload_type_c2s\",\"type\":\"long\"},{\"name\":\"rtp_payload_type_s2c\",\"type\":\"long\"},{\"name\":\"rtp_pcap_path\",\"type\":\"string\"},{\"name\":\"rtp_originator_dir\",\"type\":\"long\"},{\"name\":\"ssh_version\",\"type\":\"string\"},{\"name\":\"ssh_auth_success\",\"type\":\"string\"},{\"name\":\"ssh_client_version\",\"type\":\"string\"},{\"name\":\"ssh_server_version\",\"type\":\"string\"},{\"name\":\"ssh_cipher_alg\",\"type\":\"string\"},{\"name\":\"ssh_mac_alg\",\"type\":\"string\"},{\"name\":\"ssh_compression_alg\",\"type\":\"string\"},{\"name\":\"ssh_kex_alg\",\"type\":\"string\"},{\"name\":\"ssh_host_key_alg\",\"type\":\"string\"},{\"name\":\"ssh_host_key\",\"type\":\"string\"},{\"name\":\"ssh_hassh\",\"type\":\"string\"},{\"name\":\"stratum_cryptocurrency\",\"type\":\"string\"},{\"name\":\"stratum_mining_pools\",\"type\":\"string\"},{\"name\":\"stratum_mining_program\",\"type\":\"string\"},{\"name\":\"streaming_media_url\",\"type\":\"string\"},{\"name\":\"streaming_media_protocol\",\"type\":\"string\"},{\"name\":\"app_extra_info\",\"type\":\"string\"}]}";
+// Object parse = JSONObject.parse(json);
+//
+// System.err.println(parse);
+ }
+
+ @Test
+ public void domainFileQueryTest() throws Exception {
+ String objectType = "domain";
+ String queryType = "domain_category";
+ String filePath = "/home/bigdata/domain/domain";
+ boolean isLocal = false;
+// if (args.length >= 5) {
+// isLocal = Boolean.parseBoolean(args[3]);
+// }
+ String username = "'tsg'";
+// username = Optional.of(username).orElse("");
+// new FileQuery().queryExecutor(objectType, queryType, filePath, username, isLocal);
+
+
+// new FileQuery().queryExecutor(
+// "domain",
+// "domain_category",
+// "C:\\code\\webskt-query\\src\\main\\resources\\domain.txt",
+// "",
+// true);
+ }
}
diff --git a/src/test/java/com/mesasoft/cn/config/SettingConfigTest.java b/src/test/java/com/mesasoft/cn/config/SettingConfigTest.java
index 9808586..9528611 100644
--- a/src/test/java/com/mesasoft/cn/config/SettingConfigTest.java
+++ b/src/test/java/com/mesasoft/cn/config/SettingConfigTest.java
@@ -1,7 +1,7 @@
package com.mesasoft.cn.config;
-import com.mesasoft.cn.SketchApplication;
-import com.mesasoft.cn.SketchApplicationTest;
+import com.mesasoft.cn.WebSketchApplication;
+import com.mesasoft.cn.WebSketchApplicationTest;
import com.mesasoft.cn.modules.constant.ConfigConsts;
import org.junit.Test;
@@ -15,13 +15,13 @@ public class SettingConfigTest {
@Test
public void testFileSuffixPattern() {
- SketchApplicationTest.setSettings();
- assert Pattern.compile(SketchApplication.settings.getStringUseEval(ConfigConsts.FILE_SUFFIX_MATCH_OF_SETTING)).matcher("jpg").matches();
+ WebSketchApplicationTest.setSettings();
+ assert Pattern.compile(WebSketchApplication.settings.getStringUseEval(ConfigConsts.FILE_SUFFIX_MATCH_OF_SETTING)).matcher("jpg").matches();
}
@Test
public void testGetStoragePath() {
- SketchApplicationTest.setSettings();
+ WebSketchApplicationTest.setSettings();
System.out.println(SettingConfig.getStoragePath(ConfigConsts.TOKEN_OF_SETTINGS));
}
}
diff --git a/src/test/java/com/mesasoft/cn/dao/AuthDAOTest.java b/src/test/java/com/mesasoft/cn/dao/AuthDAOTest.java
index c3eb364..9cc1fe6 100644
--- a/src/test/java/com/mesasoft/cn/dao/AuthDAOTest.java
+++ b/src/test/java/com/mesasoft/cn/dao/AuthDAOTest.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao;
-import com.mesasoft.cn.SketchApplicationTest;
+import com.mesasoft.cn.WebSketchApplicationTest;
import com.zhazhapan.util.Formatter;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -17,7 +17,7 @@ import org.springframework.test.context.junit4.SpringRunner;
public class AuthDAOTest {
static {
- SketchApplicationTest.setSettings();
+ WebSketchApplicationTest.setSettings();
}
@Autowired
diff --git a/src/test/java/com/mesasoft/cn/dao/DownloadedDAOTest.java b/src/test/java/com/mesasoft/cn/dao/DownloadedDAOTest.java
index df8ec44..0181951 100644
--- a/src/test/java/com/mesasoft/cn/dao/DownloadedDAOTest.java
+++ b/src/test/java/com/mesasoft/cn/dao/DownloadedDAOTest.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao;
-import com.mesasoft.cn.SketchApplicationTest;
+import com.mesasoft.cn.WebSketchApplicationTest;
import com.zhazhapan.modules.constant.ValueConsts;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -17,7 +17,7 @@ import org.springframework.test.context.junit4.SpringRunner;
public class DownloadedDAOTest {
static {
- SketchApplicationTest.setSettings();
+ WebSketchApplicationTest.setSettings();
}
@Autowired
diff --git a/src/test/java/com/mesasoft/cn/dao/FileDAOTest.java b/src/test/java/com/mesasoft/cn/dao/FileDAOTest.java
index d96328c..eed375e 100644
--- a/src/test/java/com/mesasoft/cn/dao/FileDAOTest.java
+++ b/src/test/java/com/mesasoft/cn/dao/FileDAOTest.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao;
-import com.mesasoft.cn.SketchApplicationTest;
+import com.mesasoft.cn.WebSketchApplicationTest;
import com.zhazhapan.util.Formatter;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -26,7 +26,7 @@ public class FileDAOTest {
@Test
public void testGetUserDownloaded() {
- SketchApplicationTest.setSettings();
+ WebSketchApplicationTest.setSettings();
System.out.println(Formatter.listToJson(fileDAO.listUserDownloaded(2, 0, "")));
}
}
diff --git a/src/test/java/com/mesasoft/cn/dao/UserDAOTest.java b/src/test/java/com/mesasoft/cn/dao/UserDAOTest.java
index 214e325..0b15dc5 100644
--- a/src/test/java/com/mesasoft/cn/dao/UserDAOTest.java
+++ b/src/test/java/com/mesasoft/cn/dao/UserDAOTest.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao;
-import com.mesasoft.cn.SketchApplicationTest;
+import com.mesasoft.cn.WebSketchApplicationTest;
import com.mesasoft.cn.entity.User;
import com.zhazhapan.util.Checker;
import com.zhazhapan.util.Formatter;
@@ -20,7 +20,7 @@ import org.springframework.test.context.junit4.SpringRunner;
public class UserDAOTest {
static {
- SketchApplicationTest.setSettings();
+ WebSketchApplicationTest.setSettings();
}
@Autowired
diff --git a/src/test/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProviderTest.java b/src/test/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProviderTest.java
index 1d1d201..bafc17f 100644
--- a/src/test/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProviderTest.java
+++ b/src/test/java/com/mesasoft/cn/dao/sqlprovider/FileSqlProviderTest.java
@@ -1,6 +1,6 @@
package com.mesasoft.cn.dao.sqlprovider;
-import com.mesasoft.cn.SketchApplicationTest;
+import com.mesasoft.cn.WebSketchApplicationTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +25,7 @@ public class FileSqlProviderTest {
@Test
public void getAll() {
- SketchApplicationTest.setSettings();
+ WebSketchApplicationTest.setSettings();
System.out.println(fileSqlProvider.getAll(0, 0, "", ""));
}