From f4751f21ac6b484c446631dcbc5ac3ffb3c11ad8 Mon Sep 17 00:00:00 2001 From: weiye Date: Tue, 24 Mar 2020 10:47:01 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AF=86=E7=A0=81sql?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml b/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml index 1cc4095b..7b7e51fd 100644 --- a/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml +++ b/datax-admin/src/main/resources/mybatis-mapper/JobUserMapper.xml @@ -86,7 +86,7 @@ UPDATE job_user SET - password = #{password}, + password = #{password} WHERE id = #{id} From da23be76370f29586eeebd9541177c494eda9426 Mon Sep 17 00:00:00 2001 From: weiye Date: Tue, 24 Mar 2020 11:17:14 +0800 Subject: [PATCH 02/10] =?UTF-8?q?sql=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/db/2.1.2预留.sql | 108 +++++++++++++++++++++++++++++++++++++++++++ doc/db/datax_web.sql | 76 ------------------------------ 2 files changed, 108 insertions(+), 76 deletions(-) create mode 100644 doc/db/2.1.2预留.sql diff --git a/doc/db/2.1.2预留.sql b/doc/db/2.1.2预留.sql new file mode 100644 index 00000000..7abbe383 --- /dev/null +++ b/doc/db/2.1.2预留.sql @@ -0,0 +1,108 @@ +/* + Navicat Premium Data Transfer + + Source Server : local + Source Server Type : MySQL + Source Server Version : 50726 + Source Host : localhost:3306 + Source Schema : datax_web + + Target Server Type : MySQL + Target Server Version : 50726 + File Encoding : 65001 + + Date: 20/03/2020 20:09:20 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for job_permission +-- ---------------------------- +DROP TABLE IF EXISTS `job_permission`; +CREATE TABLE `job_permission` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '权限名', + `description` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限描述', + `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `pid` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of job_permission +-- ---------------------------- +INSERT INTO `job_permission` VALUES (1, 'ROLE_HOME', 'home', '/', NULL); +INSERT INTO `job_permission` VALUES (2, 'ROLE_ADMIN', 'ABel', '/', NULL); + +-- ---------------------------- +-- Table structure for job_role +-- ---------------------------- +DROP TABLE IF EXISTS `job_role`; +CREATE TABLE `job_role` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色名称', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of job_role +-- ---------------------------- +INSERT INTO `job_role` VALUES (1, 'ROLE_ADMIN'); +INSERT INTO `job_role` VALUES (2, 'ROLE_USER'); + +-- ---------------------------- +-- Table structure for job_user +-- ---------------------------- +DROP TABLE IF EXISTS `job_user`; +CREATE TABLE `job_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户主键', + `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of job_user +-- ---------------------------- +INSERT INTO `job_user` VALUES (1, 'admin', '$2a$10$2KCqRbra0Yn2TwvkZxtfLuWuUP5KyCWsljO/ci5pLD27pqR3TV1vy'); +INSERT INTO `job_user` VALUES (2, 'abel', 'abel'); +INSERT INTO `job_user` VALUES (3, 'adsd', '$2a$10$7/YMCv3DRGbOL6/nQltoqeNzNA.8nYAwzxUmuOh5/9by/5aV7sMcm'); + +-- ---------------------------- +-- Table structure for permission_role +-- ---------------------------- +DROP TABLE IF EXISTS `permission_role`; +CREATE TABLE `permission_role` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `role_id` int(11) NULL DEFAULT NULL COMMENT '角色名称', + `permission_id` int(20) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of permission_role +-- ---------------------------- +INSERT INTO `permission_role` VALUES (1, 1, 1); +INSERT INTO `permission_role` VALUES (2, 2, 1); +INSERT INTO `permission_role` VALUES (3, 1, 2); + +-- ---------------------------- +-- Table structure for role_user +-- ---------------------------- +DROP TABLE IF EXISTS `role_user`; +CREATE TABLE `role_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', + `user_id` int(20) NULL DEFAULT NULL COMMENT '角色名称', + `role_id` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of role_user +-- ---------------------------- +INSERT INTO `role_user` VALUES (1, 1, 1); +INSERT INTO `role_user` VALUES (2, 2, 2); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/doc/db/datax_web.sql b/doc/db/datax_web.sql index eec2201e..619afdbf 100644 --- a/doc/db/datax_web.sql +++ b/doc/db/datax_web.sql @@ -350,79 +350,3 @@ CREATE TABLE `job_permission` ( `pid` int(11) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of job_permission --- ---------------------------- -INSERT INTO `job_permission` VALUES (1, 'ROLE_HOME', 'home', '/', NULL); -INSERT INTO `job_permission` VALUES (2, 'ROLE_ADMIN', 'ABel', '/', NULL); - --- ---------------------------- --- Table structure for job_role --- ---------------------------- -DROP TABLE IF EXISTS `job_role`; -CREATE TABLE `job_role` ( - `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', - `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色名称', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of job_role --- ---------------------------- -INSERT INTO `job_role` VALUES (1, 'ROLE_ADMIN'); -INSERT INTO `job_role` VALUES (2, 'ROLE_USER'); - --- ---------------------------- --- Table structure for job_user --- ---------------------------- -DROP TABLE IF EXISTS `job_user`; -CREATE TABLE `job_user` ( - `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户主键', - `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名', - `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of job_user --- ---------------------------- -INSERT INTO `job_user` VALUES (1, 'admin', '$2a$10$2KCqRbra0Yn2TwvkZxtfLuWuUP5KyCWsljO/ci5pLD27pqR3TV1vy'); -INSERT INTO `job_user` VALUES (2, 'abel', 'abel'); -INSERT INTO `job_user` VALUES (3, 'adsd', '$2a$10$7/YMCv3DRGbOL6/nQltoqeNzNA.8nYAwzxUmuOh5/9by/5aV7sMcm'); - --- ---------------------------- --- Table structure for permission_role --- ---------------------------- -DROP TABLE IF EXISTS `permission_role`; -CREATE TABLE `permission_role` ( - `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', - `role_id` int(11) NULL DEFAULT NULL COMMENT '角色名称', - `permission_id` int(20) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of permission_role --- ---------------------------- -INSERT INTO `permission_role` VALUES (1, 1, 1); -INSERT INTO `permission_role` VALUES (2, 2, 1); -INSERT INTO `permission_role` VALUES (3, 1, 2); - --- ---------------------------- --- Table structure for role_user --- ---------------------------- -DROP TABLE IF EXISTS `role_user`; -CREATE TABLE `role_user` ( - `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', - `user_id` int(20) NULL DEFAULT NULL COMMENT '角色名称', - `role_id` int(11) NULL DEFAULT NULL, - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of role_user --- ---------------------------- -INSERT INTO `role_user` VALUES (1, 1, 1); -INSERT INTO `role_user` VALUES (2, 2, 2); - From a360234951e766f284f6a2a6c0f382a3a1000bb7 Mon Sep 17 00:00:00 2001 From: weiye Date: Tue, 24 Mar 2020 12:26:22 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E5=BB=BA=E8=A1=A8=E8=AF=AD=E5=8F=A5utf-8?= =?UTF-8?q?=E6=94=B9=E4=B8=BAutf-8mb4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/db/2.1.2预留.sql | 25 +++++++++++-------------- doc/db/datax_web.sql | 8 ++++---- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/doc/db/2.1.2预留.sql b/doc/db/2.1.2预留.sql index 7abbe383..6d27f4c1 100644 --- a/doc/db/2.1.2预留.sql +++ b/doc/db/2.1.2预留.sql @@ -17,18 +17,15 @@ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; --- ---------------------------- --- Table structure for job_permission --- ---------------------------- DROP TABLE IF EXISTS `job_permission`; CREATE TABLE `job_permission` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', - `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '权限名', - `description` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限描述', - `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限名', + `description` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限描述', + `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `pid` int(11) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of job_permission @@ -42,9 +39,9 @@ INSERT INTO `job_permission` VALUES (2, 'ROLE_ADMIN', 'ABel', '/', NULL); DROP TABLE IF EXISTS `job_role`; CREATE TABLE `job_role` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', - `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '角色名称', + `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名称', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of job_role @@ -58,10 +55,10 @@ INSERT INTO `job_role` VALUES (2, 'ROLE_USER'); DROP TABLE IF EXISTS `job_user`; CREATE TABLE `job_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户主键', - `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名', - `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码', + `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码', PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of job_user @@ -79,7 +76,7 @@ CREATE TABLE `permission_role` ( `role_id` int(11) NULL DEFAULT NULL COMMENT '角色名称', `permission_id` int(20) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of permission_role @@ -97,7 +94,7 @@ CREATE TABLE `role_user` ( `user_id` int(20) NULL DEFAULT NULL COMMENT '角色名称', `role_id` int(11) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of role_user diff --git a/doc/db/datax_web.sql b/doc/db/datax_web.sql index 619afdbf..725277ab 100644 --- a/doc/db/datax_web.sql +++ b/doc/db/datax_web.sql @@ -344,9 +344,9 @@ ADD COLUMN `load_average` DOUBLE NULL AFTER `memory_usage`; DROP TABLE IF EXISTS `job_permission`; CREATE TABLE `job_permission` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', - `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '权限名', - `description` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限描述', - `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '权限名', + `description` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限描述', + `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `pid` int(11) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; From ae50e821192d5f2916f22d731c33817cbf6878fb Mon Sep 17 00:00:00 2001 From: weiye Date: Tue, 24 Mar 2020 18:22:40 +0800 Subject: [PATCH 04/10] #60 --- .../main/java/com/wugui/datax/admin/util/AESUtil.java | 4 ++-- .../java/com/wugui/datax/admin/util/JSONUtils.java | 11 +++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java b/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java index d7fd4dff..9a86f61d 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java @@ -57,7 +57,7 @@ public class AESUtil { return new Base64().encodeToString(result); // 加密 } } catch (Exception e) { - log.error("content encrypt error {0}",e); + log.error("content encrypt error {}",e.getMessage()); } return null; } @@ -81,7 +81,7 @@ public class AESUtil { return new String(result); // 解密 } } catch (Exception e) { - log.error("content decrypt error {0}",e); + log.error("content decrypt error {}",e.getMessage()); } return null; } diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java b/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java index 7e9d30cb..fea427a7 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java @@ -40,8 +40,15 @@ public class JSONUtils { public static JSONObject decrypt(String content, String key) { JSONObject writer = JSONObject.parseObject(JSONObject.parseObject(content).getString(key)); JSONObject writerParams = JSONObject.parseObject(writer.getString("parameter")); - writerParams.put("username", AESUtil.decrypt(writerParams.getString("username"))); - writerParams.put("password", AESUtil.decrypt(writerParams.getString("password"))); + + String dUsername = AESUtil.decrypt(writerParams.getString("username")); + String username = dUsername == null ? writerParams.getString("username") : dUsername; + writerParams.put("username", username); + + String dPassword = AESUtil.decrypt(writerParams.getString("password")); + String password = dPassword == null ? writerParams.getString("password") : dPassword; + writerParams.put("password", password); + writer.put("parameter", writerParams); return writer; } From 34044f52a4f24825f28e2b14e8047805a4d4844a Mon Sep 17 00:00:00 2001 From: weiye Date: Wed, 25 Mar 2020 14:18:18 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9D=83=E9=99=90?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- .../src/main/java/com/wugui/datax/admin/entity/JwtUser.java | 4 ++-- .../datax/admin/service/impl/UserDetailsServiceImpl.java | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0f8aae2d..7433d23d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,5 @@ /datax-rpc/target/ /datax-all.iml /logs/ -*-dev* \ No newline at end of file +*-dev* +/data/ diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java b/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java index 8fd30a19..217a2a5c 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/entity/JwtUser.java @@ -21,11 +21,11 @@ public class JwtUser implements UserDetails { } // 写一个能直接使用user创建jwtUser的构造器 - public JwtUser(JobUser user) { + public JwtUser(JobUser user, JobRole role) { id = user.getId(); username = user.getUsername(); password = user.getPassword(); - authorities = Collections.singleton(new SimpleGrantedAuthority(user.getRole())); + authorities = Collections.singleton(new SimpleGrantedAuthority(role.getName())); } @Override diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java index dcd9ee05..b1300829 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/UserDetailsServiceImpl.java @@ -1,5 +1,6 @@ package com.wugui.datax.admin.service.impl; +import com.wugui.datax.admin.entity.JobRole; import com.wugui.datax.admin.entity.JwtUser; import com.wugui.datax.admin.entity.JobUser; import com.wugui.datax.admin.mapper.JobUserMapper; @@ -24,7 +25,8 @@ public class UserDetailsServiceImpl implements UserDetailsService { @Override public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { JobUser user = jobUserMapper.loadByUserName(s); - return new JwtUser(user); + JobRole role = jobUserMapper.getRoleByUserId(user.getId()); + return new JwtUser(user, role); } } From 60ced18885f7dd6ddd2ffdb64044eadb54b3f453 Mon Sep 17 00:00:00 2001 From: water <672684719@qq.com> Date: Thu, 26 Mar 2020 11:50:41 +0800 Subject: [PATCH 06/10] =?UTF-8?q?update:=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/JobInfoController.java | 2 +- .../controller/JobTemplateController.java | 2 +- .../datax/admin/core/trigger/JobTrigger.java | 2 +- .../admin/service/impl/JobServiceImpl.java | 61 ++++---- .../service/impl/JobTemplateServiceImpl.java | 6 +- .../com/wugui/datax/admin/util/JSONUtils.java | 141 ++++++------------ .../main/resources/i18n/message.properties | 2 +- .../main/resources/i18n/message_en.properties | 2 +- 8 files changed, 84 insertions(+), 134 deletions(-) diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java index 2b14f653..4132c5ab 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobInfoController.java @@ -102,7 +102,7 @@ public class JobInfoController { } } } catch (ParseException e) { - return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")); + return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid")); } return new ReturnT<>(result); } diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java index 3a5de855..8fc16b59 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/controller/JobTemplateController.java @@ -74,7 +74,7 @@ public class JobTemplateController { } } } catch (ParseException e) { - return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")); + return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid")); } return new ReturnT<>(result); } diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java b/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java index f53688be..251823cd 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/core/trigger/JobTrigger.java @@ -49,7 +49,7 @@ public class JobTrigger { } if (GlueTypeEnum.BEAN.getDesc().equals(jobInfo.getGlueType())) { //解密账密 - String json = JSONUtils.decryptJson(jobInfo.getJobJson()); + String json = JSONUtils.changeJson(jobInfo.getJobJson(), JSONUtils.decrypt); jobInfo.setJobJson(json); } if (StringUtils.isNotBlank(executorParam)) { diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java index c502fd13..dca34b9e 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobServiceImpl.java @@ -15,8 +15,11 @@ import com.wugui.datax.admin.entity.JobLogReport; import com.wugui.datax.admin.mapper.*; import com.wugui.datax.admin.service.JobService; import com.wugui.datax.admin.util.CronUtil; +import com.wugui.datax.admin.util.JSONUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -52,7 +55,7 @@ public class JobServiceImpl implements JobService { int list_count = jobInfoMapper.pageListCount(start, length, jobGroup, triggerStatus, jobDesc, glueType, author); // package result - Map maps = new HashMap(); + Map maps = new HashMap<>(); maps.put("recordsTotal", list_count); // 总记录数 maps.put("recordsFiltered", list_count); // 过滤后的总记录数 maps.put("data", list); // 分页列表 @@ -64,31 +67,31 @@ public class JobServiceImpl implements JobService { // valid JobGroup group = jobGroupMapper.load(jobInfo.getJobGroup()); if (group == null) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose") + I18nUtil.getString("jobinfo_field_jobgroup"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose") + I18nUtil.getString("jobinfo_field_jobgroup"))); } if (!CronExpression.isValidExpression(jobInfo.getJobCron())) { - return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")); + return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid")); } if (jobInfo.getGlueType().equals(GlueTypeEnum.BEAN.getDesc()) && jobInfo.getJobJson().trim().length() <= 2) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson"))); } if (jobInfo.getJobDesc() == null || jobInfo.getJobDesc().trim().length() == 0) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc"))); } if (jobInfo.getAuthor() == null || jobInfo.getAuthor().trim().length() == 0) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author"))); } if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid"))); } if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid"))); } if (GlueTypeEnum.match(jobInfo.getGlueType()) == null) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_gluetype") + I18nUtil.getString("system_unvalid"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_gluetype") + I18nUtil.getString("system_unvalid"))); } if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType()) && (jobInfo.getExecutorHandler() == null || jobInfo.getExecutorHandler().trim().length() == 0)) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + "JobHandler")); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + "JobHandler")); } // fix "\r" in shell @@ -124,14 +127,15 @@ public class JobServiceImpl implements JobService { // add in db jobInfo.setAddTime(new Date()); + jobInfo.setJobJson(JSONUtils.changeJson(jobInfo.getJobJson(), JSONUtils.encrypt)); jobInfo.setUpdateTime(new Date()); jobInfo.setGlueUpdatetime(new Date()); jobInfoMapper.save(jobInfo); if (jobInfo.getId() < 1) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_add") + I18nUtil.getString("system_fail"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_add") + I18nUtil.getString("system_fail"))); } - return new ReturnT(String.valueOf(jobInfo.getId())); + return new ReturnT<>(String.valueOf(jobInfo.getId())); } @Override @@ -153,22 +157,22 @@ public class JobServiceImpl implements JobService { // valid if (!CronExpression.isValidExpression(jobInfo.getJobCron())) { - return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")); + return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid")); } if (jobInfo.getGlueType().equals(GlueTypeEnum.BEAN.getDesc()) && jobInfo.getJobJson().trim().length() <= 2) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobjson"))); } if (jobInfo.getJobDesc() == null || jobInfo.getJobDesc().trim().length() == 0) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc"))); } if (jobInfo.getAuthor() == null || jobInfo.getAuthor().trim().length() == 0) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_author"))); } if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy") + I18nUtil.getString("system_unvalid"))); } if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy") + I18nUtil.getString("system_unvalid"))); } // ChildJobId valid @@ -200,7 +204,7 @@ public class JobServiceImpl implements JobService { // group valid JobGroup jobGroup = jobGroupMapper.load(jobInfo.getJobGroup()); if (jobGroup == null) { - return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_jobgroup") + I18nUtil.getString("system_unvalid"))); + return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_jobgroup") + I18nUtil.getString("system_unvalid"))); } // stage job info @@ -220,26 +224,15 @@ public class JobServiceImpl implements JobService { nextTriggerTime = nextValidTime.getTime(); } catch (ParseException e) { logger.error(e.getMessage(), e); - return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") + " | " + e.getMessage()); + return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid") + " | " + e.getMessage()); } } - exists_jobInfo.setJobGroup(jobInfo.getJobGroup()); - exists_jobInfo.setJobCron(jobInfo.getJobCron()); - exists_jobInfo.setJobDesc(jobInfo.getJobDesc()); - exists_jobInfo.setAuthor(jobInfo.getAuthor()); - exists_jobInfo.setAlarmEmail(jobInfo.getAlarmEmail()); - exists_jobInfo.setExecutorRouteStrategy(jobInfo.getExecutorRouteStrategy()); - exists_jobInfo.setExecutorHandler(jobInfo.getExecutorHandler()); - exists_jobInfo.setExecutorParam(jobInfo.getExecutorParam()); - exists_jobInfo.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy()); - exists_jobInfo.setExecutorTimeout(jobInfo.getExecutorTimeout()); - exists_jobInfo.setExecutorFailRetryCount(jobInfo.getExecutorFailRetryCount()); - exists_jobInfo.setChildJobId(jobInfo.getChildJobId()); - exists_jobInfo.setTriggerNextTime(nextTriggerTime); + BeanUtils.copyProperties(jobInfo,exists_jobInfo); exists_jobInfo.setReplaceParam(jobInfo.getReplaceParam()); exists_jobInfo.setJvmParam(jobInfo.getJvmParam()); exists_jobInfo.setIncStartTime(jobInfo.getIncStartTime()); + exists_jobInfo.setTriggerNextTime(nextTriggerTime); exists_jobInfo.setUpdateTime(new Date()); exists_jobInfo.setGlueType(jobInfo.getGlueType()); exists_jobInfo.setPartitionInfo(jobInfo.getPartitionInfo()); @@ -285,7 +278,7 @@ public class JobServiceImpl implements JobService { nextTriggerTime = nextValidTime.getTime(); } catch (ParseException e) { logger.error(e.getMessage(), e); - return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") + " | " + e.getMessage()); + return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid") + " | " + e.getMessage()); } xxlJobInfo.setTriggerStatus(1); diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java index 1edf37a1..1f664a8d 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/service/impl/JobTemplateServiceImpl.java @@ -49,7 +49,7 @@ public class JobTemplateServiceImpl implements JobTemplateService { int list_count = jobTemplateMapper.pageListCount(start, length, jobGroup, jobDesc, executorHandler, author); // package result - Map maps = new HashMap(); + Map maps = new HashMap<>(); maps.put("recordsTotal", list_count); // 总记录数 maps.put("recordsFiltered", list_count); // 过滤后的总记录数 maps.put("data", list); // 分页列表 @@ -64,7 +64,7 @@ public class JobTemplateServiceImpl implements JobTemplateService { return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose")+I18nUtil.getString("jobinfo_field_jobgroup")) ); } if (!CronExpression.isValidExpression(jobTemplate.getJobCron())) { - return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") ); + return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid") ); } if (jobTemplate.getJobDesc()==null || jobTemplate.getJobDesc().trim().length()==0) { return new ReturnT(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_jobdesc")) ); @@ -142,7 +142,7 @@ public class JobTemplateServiceImpl implements JobTemplateService { // valid if (!CronExpression.isValidExpression(jobTemplate.getJobCron())) { - return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")); + return new ReturnT<>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_invalid")); } if (jobTemplate.getJobDesc()==null || jobTemplate.getJobDesc().trim().length()==0) { return new ReturnT<>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_field_jobdesc"))); diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java b/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java index fea427a7..b49a4f4d 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/util/JSONUtils.java @@ -1,6 +1,5 @@ package com.wugui.datax.admin.util; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -15,105 +14,63 @@ import com.alibaba.fastjson.JSONObject; public class JSONUtils { /** - * 返回格式化的json - * - * @param object + * decrypt 解密 + */ + public static Integer decrypt = 0; + /** + * decrypt 加密 + */ + public static Integer encrypt = 1; + + /** + * @param content + * @param key + * @param changeType 0加密 or 1解密 * @return */ - public static String formatJson(Object object) { - return JSON.toJSONString(object, true); + public static JSONObject change(String content, String key, Integer changeType) { + JSONObject keyObj = JSONObject.parseObject(JSONObject.parseObject(content).getString(key)); + JSONObject params = JSONObject.parseObject(keyObj.getString("parameter")); + String dUsername = null, dPassword = null; + if (decrypt.equals(changeType)) { //解密 + dUsername = AESUtil.decrypt(params.getString("username")); + dPassword = AESUtil.decrypt(params.getString("password")); + + } else if (encrypt.equals(changeType)) {//加密 + + dUsername = AESUtil.encrypt(params.getString("username")); + dPassword = AESUtil.encrypt(params.getString("password")); + } + String username = dUsername == null ? params.getString("username") : dUsername; + String password = dPassword == null ? params.getString("password") : dPassword; + params.put("username", username); + params.put("password", password); + keyObj.put("parameter", params); + return keyObj; } - public static String decryptJson(String jsonStr) { + /** + * @param jsonStr + * @param changeType 0加密 or 1解密 + * @return jsonStr + */ + public static String changeJson(String jsonStr, Integer changeType) { JSONObject json = JSONObject.parseObject(jsonStr); JSONObject job = json.getJSONObject("job"); - JSONArray content = job.getJSONArray("content"); - for (int i = 0; i < content.size(); i++) { - ((JSONObject) content.get(i)).put("reader", decrypt(content.getString(i), "reader")); - ((JSONObject) content.get(i)).put("writer", decrypt(content.getString(i), "writer")); + JSONArray contents = job.getJSONArray("content"); + for (int i = 0; i < contents.size(); i++) { + String contentStr = contents.getString(i); + Object obj = contents.get(i); + if (decrypt.equals(changeType)) { //解密 + ((JSONObject) obj).put("reader", change(contentStr, "reader", decrypt)); + ((JSONObject) obj).put("writer", change(contentStr, "writer", decrypt)); + } else if (encrypt.equals(changeType)) {//加密 + ((JSONObject) obj).put("reader", change(contentStr, "reader", encrypt)); + ((JSONObject) obj).put("writer", change(contentStr, "writer", encrypt)); + } } - job.put("content", content); + job.put("content", contents); json.put("job", job); return json.toJSONString(); } - - public static JSONObject decrypt(String content, String key) { - JSONObject writer = JSONObject.parseObject(JSONObject.parseObject(content).getString(key)); - JSONObject writerParams = JSONObject.parseObject(writer.getString("parameter")); - - String dUsername = AESUtil.decrypt(writerParams.getString("username")); - String username = dUsername == null ? writerParams.getString("username") : dUsername; - writerParams.put("username", username); - - String dPassword = AESUtil.decrypt(writerParams.getString("password")); - String password = dPassword == null ? writerParams.getString("password") : dPassword; - writerParams.put("password", password); - - writer.put("parameter", writerParams); - return writer; - } - - - public static void main(String[] args) { - String s = "{\n" + - " \"job\": {\n" + - " \"setting\": {\n" + - " \"speed\": {\n" + - " \"channel\": 3\n" + - " },\n" + - " \"errorLimit\": {\n" + - " \"record\": 0,\n" + - " \"percentage\": 0.02\n" + - " }\n" + - " },\n" + - " \"content\": [\n" + - " {\n" + - " \"reader\": {\n" + - " \"name\": \"mysqlreader\",\n" + - " \"parameter\": {\n" + - " \"username\": \"8ivlZcKGclwi5NwpuzkXzg==\",\n" + - " \"password\": \"fZfGM5387/mzCDxqjb2thQ==\",\n" + - " \"column\": [\n" + - " \"`id`\"\n" + - " ],\n" + - " \"splitPk\": \"\",\n" + - " \"connection\": [\n" + - " {\n" + - " \"table\": [\n" + - " \"datax_plugin\"\n" + - " ],\n" + - " \"jdbcUrl\": [\n" + - " \"jdbc:mysql://localhost:3306/datax_web\"\n" + - " ]\n" + - " }\n" + - " ]\n" + - " }\n" + - " },\n" + - " \"writer\": {\n" + - " \"name\": \"mysqlwriter\",\n" + - " \"parameter\": {\n" + - " \"username\": \"8ivlZcKGclwi5NwpuzkXzg==\",\n" + - " \"password\": \"fZfGM5387/mzCDxqjb2thQ==\",\n" + - " \"column\": [\n" + - " \"`id`\"\n" + - " ],\n" + - " \"preSql\": [\n" + - " \"\"\n" + - " ],\n" + - " \"connection\": [\n" + - " {\n" + - " \"table\": [\n" + - " \"job_log\"\n" + - " ],\n" + - " \"jdbcUrl\": \"jdbc:mysql://localhost:3306/datax_web\"\n" + - " }\n" + - " ]\n" + - " }\n" + - " }\n" + - " }\n" + - " ]\n" + - " }\n" + - "}"; - System.out.println(decryptJson(s)); - } } diff --git a/datax-admin/src/main/resources/i18n/message.properties b/datax-admin/src/main/resources/i18n/message.properties index db263c23..dfe1e567 100644 --- a/datax-admin/src/main/resources/i18n/message.properties +++ b/datax-admin/src/main/resources/i18n/message.properties @@ -122,7 +122,7 @@ jobinfo_field_readerColumns=Reader Column jobinfo_field_writerColumns=Writer Column jobinfo_field_gluetype=运行模式 jobinfo_field_executorparam=任务参数 -jobinfo_field_cron_unvalid=Cron格式非法 +jobinfo_field_cron_invalid=Cron格式非法 jobinfo_field_cron_never_fire=Cron非法,永远不会触发 jobinfo_field_author=负责人 jobinfo_field_timeout=任务超时时间 diff --git a/datax-admin/src/main/resources/i18n/message_en.properties b/datax-admin/src/main/resources/i18n/message_en.properties index 155539c6..70b14afd 100644 --- a/datax-admin/src/main/resources/i18n/message_en.properties +++ b/datax-admin/src/main/resources/i18n/message_en.properties @@ -117,7 +117,7 @@ jobinfo_field_jobJSON=Job JSON jobinfo_field_timeout=Job timeout period jobinfo_field_gluetype=GLUE Type jobinfo_field_executorparam=Param -jobinfo_field_cron_unvalid=The Cron is illegal +jobinfo_field_cron_invalid=The Cron is illegal jobinfo_field_cron_never_fire=The Cron will never fire jobinfo_field_author=Author jobinfo_field_alarmemail=Alarm email From 1faa5cc2ae084d88d068a9dca6c4b4efbf4115eb Mon Sep 17 00:00:00 2001 From: water <672684719@qq.com> Date: Thu, 26 Mar 2020 11:55:06 +0800 Subject: [PATCH 07/10] =?UTF-8?q?update:=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/wugui/datax/admin/util/ServletUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java b/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java index 942689b5..5f936de6 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/util/ServletUtils.java @@ -56,7 +56,7 @@ public class ServletUtils { * requestContextFilter/* */ public static HttpServletResponse getResponse() { - HttpServletResponse response = null; + HttpServletResponse response; try { response = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getResponse(); if (response == null) { From 2ed42b7d93f1f1b816f4cbaeceb6f1287914a585 Mon Sep 17 00:00:00 2001 From: water <672684719@qq.com> Date: Fri, 27 Mar 2020 17:56:08 +0800 Subject: [PATCH 08/10] fix:java.security.InvalidKeyException: Illegal key size --- datax-admin/pom.xml | 15 +++++++++++++++ .../com/wugui/datax/admin/util/AESUtil.java | 16 ++++------------ datax-admin/src/main/lib/US_export_policy.jar | Bin 0 -> 3023 bytes datax-admin/src/main/lib/local_policy.jar | Bin 0 -> 3035 bytes 4 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 datax-admin/src/main/lib/US_export_policy.jar create mode 100644 datax-admin/src/main/lib/local_policy.jar diff --git a/datax-admin/pom.xml b/datax-admin/pom.xml index cf85a69c..106760d3 100644 --- a/datax-admin/pom.xml +++ b/datax-admin/pom.xml @@ -126,6 +126,21 @@ ${basedir}/src/main/lib/sqljdbc4-4.0.jar + + com.oracle + local_policy + 4.0 + system + ${basedir}/src/main/lib/local_policy.jar + + + com.oracle + US_export_policy + 4.0 + system + ${basedir}/src/main/lib/US_export_policy.jar + + org.slf4j slf4j-api diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java b/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java index 9a86f61d..a314ad52 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/util/AESUtil.java @@ -47,7 +47,7 @@ public class AESUtil { */ public static String encrypt(String content, String key) { try { - if(StringUtils.isNotBlank(content)) { + if (StringUtils.isNotBlank(content)) { SecretKeySpec skey = new SecretKeySpec(key.getBytes(), algorithm); IvParameterSpec iv = new IvParameterSpec(key.getBytes(), 0, offset); Cipher cipher = Cipher.getInstance(transformation); @@ -57,7 +57,7 @@ public class AESUtil { return new Base64().encodeToString(result); // 加密 } } catch (Exception e) { - log.error("content encrypt error {}",e.getMessage()); + log.error("content encrypt error {}", e.getMessage()); } return null; } @@ -72,7 +72,7 @@ public class AESUtil { */ public static String decrypt(String content, String key) { try { - if(StringUtils.isNotBlank(content)){ + if (StringUtils.isNotBlank(content)) { SecretKeySpec skey = new SecretKeySpec(key.getBytes(), algorithm); IvParameterSpec iv = new IvParameterSpec(key.getBytes(), 0, offset); Cipher cipher = Cipher.getInstance(transformation); @@ -81,16 +81,8 @@ public class AESUtil { return new String(result); // 解密 } } catch (Exception e) { - log.error("content decrypt error {}",e.getMessage()); + log.error("content decrypt error {}", e.getMessage()); } return null; } - - public static void main(String[] args) throws Exception { - String s = "root"; - String encryptResultStr = encrypt(s); - System.out.println(s+" 加密后 :" + encryptResultStr); - System.out.println("mysql"+" 加密后 :" + encrypt("mysql")); - System.out.println("解密后:" + decrypt("mysql")); - } } \ No newline at end of file diff --git a/datax-admin/src/main/lib/US_export_policy.jar b/datax-admin/src/main/lib/US_export_policy.jar new file mode 100644 index 0000000000000000000000000000000000000000..251b102c57c076504ba818330e4fceb4509753d8 GIT binary patch literal 3023 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 Lo19~UoUi`@yDZ_Z literal 0 HcmV?d00001 From 1a2b2cd68a814f7bcf24fa84ba1e3720bb417c7c Mon Sep 17 00:00:00 2001 From: water <672684719@qq.com> Date: Sat, 28 Mar 2020 22:59:36 +0800 Subject: [PATCH 09/10] =?UTF-8?q?update:=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XxlRegistryBaseClient.java | 47 +-- .../model/XxlRegistryDataParamVO.java | 1 + .../util/BasicHttpUtil.java | 11 +- .../util/json/BasicJson.java | 7 +- .../util/json/BasicJsonReader.java | 304 +++++++++--------- .../util/json/BasicJsonwriter.java | 5 +- .../registry/impl/LocalServiceRegistry.java | 6 +- .../invoker/call/XxlRpcInvokeFuture.java | 4 +- .../impl/XxlRpcSpringInvokerFactory.java | 2 +- .../java/com/wugui/datax/rpc/util/IpUtil.java | 16 +- .../com/wugui/datax/rpc/util/NetUtil.java | 2 +- .../wugui/datax/rpc/util/XxlRpcException.java | 1 + 12 files changed, 196 insertions(+), 210 deletions(-) diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java b/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java index f0157806..0fee1661 100644 --- a/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java +++ b/datax-registry/src/main/java/com.wugui.datax.registry/XxlRegistryBaseClient.java @@ -33,13 +33,13 @@ public class XxlRegistryBaseClient { this.env = env; // valid - if (adminAddress==null || adminAddress.trim().length()==0) { + if (adminAddress == null || adminAddress.trim().length() == 0) { throw new RuntimeException("xxl-registry adminAddress empty"); } - if (biz==null || biz.trim().length()<4 || biz.trim().length()>255) { + if (biz == null || biz.trim().length() < 4 || biz.trim().length() > 255) { throw new RuntimeException("xxl-registry biz empty Invalid[4~255]"); } - if (env==null || env.trim().length()<2 || env.trim().length()>255) { + if (env == null || env.trim().length() < 2 || env.trim().length() > 255) { throw new RuntimeException("xxl-registry biz env Invalid[2~255]"); } @@ -59,17 +59,17 @@ public class XxlRegistryBaseClient { * @param registryDataList * @return */ - public boolean registry(List registryDataList){ + public boolean registry(List registryDataList) { // valid - if (registryDataList==null || registryDataList.size()==0) { + if (registryDataList == null || registryDataList.size() == 0) { throw new RuntimeException("xxl-registry registryDataList empty"); } - for (XxlRegistryDataParamVO registryParam: registryDataList) { - if (registryParam.getKey()==null || registryParam.getKey().trim().length()<4 || registryParam.getKey().trim().length()>255) { + for (XxlRegistryDataParamVO registryParam : registryDataList) { + if (registryParam.getKey() == null || registryParam.getKey().trim().length() < 4 || registryParam.getKey().trim().length() > 255) { throw new RuntimeException("xxl-registry registryDataList#key Invalid[4~255]"); } - if (registryParam.getValue()==null || registryParam.getValue().trim().length()<4 || registryParam.getValue().trim().length()>255) { + if (registryParam.getValue() == null || registryParam.getValue().trim().length() < 4 || registryParam.getValue().trim().length() > 255) { throw new RuntimeException("xxl-registry registryDataList#value Invalid[4~255]"); } } @@ -88,12 +88,12 @@ public class XxlRegistryBaseClient { // result Map respObj = requestAndValid(pathUrl, paramsJson, 5); - return respObj!=null?true:false; + return respObj != null ? true : false; } - private Map requestAndValid(String pathUrl, String requestBody, int timeout){ + private Map requestAndValid(String pathUrl, String requestBody, int timeout) { - for (String adminAddressUrl: adminAddressArr) { + for (String adminAddressUrl : adminAddressArr) { String finalUrl = adminAddressUrl + pathUrl; // request @@ -106,14 +106,15 @@ public class XxlRegistryBaseClient { Map resopnseMap = null; try { resopnseMap = BasicJson.parseMap(responseData); - } catch (Exception e) { } + } catch (Exception e) { + } // valid resopnse - if (resopnseMap==null + if (resopnseMap == null || !resopnseMap.containsKey("code") || !"200".equals(String.valueOf(resopnseMap.get("code"))) - ) { + ) { logger.warn("XxlRegistryBaseClient response fail, responseData={}", responseData); return null; } @@ -133,14 +134,14 @@ public class XxlRegistryBaseClient { */ public boolean remove(List registryDataList) { // valid - if (registryDataList==null || registryDataList.size()==0) { + if (registryDataList == null || registryDataList.size() == 0) { throw new RuntimeException("xxl-registry registryDataList empty"); } - for (XxlRegistryDataParamVO registryParam: registryDataList) { - if (registryParam.getKey()==null || registryParam.getKey().trim().length()<4 || registryParam.getKey().trim().length()>255) { + for (XxlRegistryDataParamVO registryParam : registryDataList) { + if (registryParam.getKey() == null || registryParam.getKey().trim().length() < 4 || registryParam.getKey().trim().length() > 255) { throw new RuntimeException("xxl-registry registryDataList#key Invalid[4~255]"); } - if (registryParam.getValue()==null || registryParam.getValue().trim().length()<4 || registryParam.getValue().trim().length()>255) { + if (registryParam.getValue() == null || registryParam.getValue().trim().length() < 4 || registryParam.getValue().trim().length() > 255) { throw new RuntimeException("xxl-registry registryDataList#value Invalid[4~255]"); } } @@ -159,7 +160,7 @@ public class XxlRegistryBaseClient { // result Map respObj = requestAndValid(pathUrl, paramsJson, 5); - return respObj!=null?true:false; + return respObj != null ? true : false; } /** @@ -170,7 +171,7 @@ public class XxlRegistryBaseClient { */ public Map> discovery(Set keys) { // valid - if (keys==null || keys.size()==0) { + if (keys == null || keys.size() == 0) { throw new RuntimeException("xxl-registry keys empty"); } @@ -190,7 +191,7 @@ public class XxlRegistryBaseClient { Map respObj = requestAndValid(pathUrl, paramsJson, 5); // parse - if (respObj!=null && respObj.containsKey("data")) { + if (respObj != null && respObj.containsKey("data")) { Map> data = (Map>) respObj.get("data"); return data; } @@ -206,7 +207,7 @@ public class XxlRegistryBaseClient { */ public boolean monitor(Set keys) { // valid - if (keys==null || keys.size()==0) { + if (keys == null || keys.size() == 0) { throw new RuntimeException("xxl-registry keys empty"); } @@ -224,7 +225,7 @@ public class XxlRegistryBaseClient { // result Map respObj = requestAndValid(pathUrl, paramsJson, 60); - return respObj!=null?true:false; + return respObj != null ? true : false; } } diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java b/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java index 920a6695..be3f543d 100644 --- a/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java +++ b/datax-registry/src/main/java/com.wugui.datax.registry/model/XxlRegistryDataParamVO.java @@ -14,6 +14,7 @@ public class XxlRegistryDataParamVO { public XxlRegistryDataParamVO() { } + public XxlRegistryDataParamVO(String key, String value) { this.key = key; this.value = value; diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java b/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java index d562b0ea..a0bd8975 100644 --- a/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java +++ b/datax-registry/src/main/java/com.wugui.datax.registry/util/BasicHttpUtil.java @@ -51,17 +51,10 @@ public class BasicHttpUtil { dataOutputStream.flush(); dataOutputStream.close(); - /*byte[] requestBodyBytes = requestBody.getBytes("UTF-8"); - connection.setRequestProperty("Content-Length", String.valueOf(requestBodyBytes.length)); - OutputStream outwritestream = connection.getOutputStream(); - outwritestream.write(requestBodyBytes); - outwritestream.flush(); - outwritestream.close();*/ - // valid StatusCode int statusCode = connection.getResponseCode(); if (statusCode != 200) { - throw new RuntimeException("http request StatusCode("+ statusCode +") invalid. for url : " + url); + throw new RuntimeException("http request StatusCode(" + statusCode + ") invalid. for url : " + url); } // result @@ -123,7 +116,7 @@ public class BasicHttpUtil { // valid StatusCode int statusCode = connection.getResponseCode(); if (statusCode != 200) { - throw new RuntimeException("Http Request StatusCode("+ statusCode +") Invalid."); + throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid."); } // result diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java index e1a8bac9..b9b78aca 100644 --- a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java +++ b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJson.java @@ -29,7 +29,7 @@ public class BasicJson { * parse json to map * * @param json - * @return only for filed type "null、ArrayList、LinkedHashMap、String、Long、Double、..." + * @return only for filed type "null、ArrayList、LinkedHashMap、String、Long、Double、..." */ public static Map parseMap(String json) { return basicJsonReader.parseMap(json); @@ -46,12 +46,11 @@ public class BasicJson { } - public static void main(String[] args) { Map result = new HashMap<>(); result.put("code", 200); result.put("msg", "success"); - result.put("arr", Arrays.asList("111","222")); + result.put("arr", Arrays.asList("111", "222")); result.put("float", 1.11f); result.put("temp", null); @@ -206,6 +205,4 @@ public class BasicJson { }*/ - - } diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java index 51b09ad9..1f467887 100644 --- a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java +++ b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonReader.java @@ -12,173 +12,169 @@ import java.util.Map; * @author xuxueli 2018-11-30 */ public class BasicJsonReader { - private static Logger logger = LoggerFactory.getLogger(BasicJsonwriter.class); + private static Logger logger = LoggerFactory.getLogger(BasicJsonwriter.class); - public Map parseMap(String json) { - if (json != null) { - json = json.trim(); - if (json.startsWith("{")) { - return parseMapInternal(json); - } - } - throw new IllegalArgumentException("Cannot parse JSON"); - } + public Map parseMap(String json) { + if (json != null) { + json = json.trim(); + if (json.startsWith("{")) { + return parseMapInternal(json); + } + } + throw new IllegalArgumentException("Cannot parse JSON"); + } - public List parseList(String json) { - if (json != null) { - json = json.trim(); - if (json.startsWith("[")) { - return parseListInternal(json); - } - } - throw new IllegalArgumentException("Cannot parse JSON"); - } + public List parseList(String json) { + if (json != null) { + json = json.trim(); + if (json.startsWith("[")) { + return parseListInternal(json); + } + } + throw new IllegalArgumentException("Cannot parse JSON"); + } - private List parseListInternal(String json) { - List list = new ArrayList(); - json = trimLeadingCharacter(trimTrailingCharacter(json, ']'), '['); - for (String value : tokenize(json)) { - list.add(parseInternal(value)); - } - return list; - } + private List parseListInternal(String json) { + List list = new ArrayList(); + json = trimLeadingCharacter(trimTrailingCharacter(json, ']'), '['); + for (String value : tokenize(json)) { + list.add(parseInternal(value)); + } + return list; + } - private Object parseInternal(String json) { - if (json.equals("null")) { - return null; - } - if (json.startsWith("[")) { - return parseListInternal(json); - } - if (json.startsWith("{")) { - return parseMapInternal(json); - } - if (json.startsWith("\"")) { - return trimTrailingCharacter(trimLeadingCharacter(json, '"'), '"'); - } - try { - return Long.valueOf(json); - } - catch (NumberFormatException ex) { - // ignore - } - try { - return Double.valueOf(json); - } - catch (NumberFormatException ex) { - // ignore - } - return json; - } + private Object parseInternal(String json) { + if (json.equals("null")) { + return null; + } + if (json.startsWith("[")) { + return parseListInternal(json); + } + if (json.startsWith("{")) { + return parseMapInternal(json); + } + if (json.startsWith("\"")) { + return trimTrailingCharacter(trimLeadingCharacter(json, '"'), '"'); + } + try { + return Long.valueOf(json); + } catch (NumberFormatException ex) { + // ignore + } + try { + return Double.valueOf(json); + } catch (NumberFormatException ex) { + // ignore + } + return json; + } - private Map parseMapInternal(String json) { - Map map = new LinkedHashMap(); - json = trimLeadingCharacter(trimTrailingCharacter(json, '}'), '{'); - for (String pair : tokenize(json)) { - String[] values = trimArrayElements(split(pair, ":")); - String key = trimLeadingCharacter(trimTrailingCharacter(values[0], '"'), '"'); - Object value = parseInternal(values[1]); - map.put(key, value); - } - return map; - } + private Map parseMapInternal(String json) { + Map map = new LinkedHashMap(); + json = trimLeadingCharacter(trimTrailingCharacter(json, '}'), '{'); + for (String pair : tokenize(json)) { + String[] values = trimArrayElements(split(pair, ":")); + String key = trimLeadingCharacter(trimTrailingCharacter(values[0], '"'), '"'); + Object value = parseInternal(values[1]); + map.put(key, value); + } + return map; + } - // append start - private static String[] split(String toSplit, String delimiter) { - if (toSplit!=null && !toSplit.isEmpty() && delimiter!=null && !delimiter.isEmpty()) { - int offset = toSplit.indexOf(delimiter); - if (offset < 0) { - return null; - } else { - String beforeDelimiter = toSplit.substring(0, offset); - String afterDelimiter = toSplit.substring(offset + delimiter.length()); - return new String[]{beforeDelimiter, afterDelimiter}; - } - } else { - return null; - } - } - private static String[] trimArrayElements(String[] array) { - if (array == null || array.length == 0) { - return new String[0]; - } else { - String[] result = new String[array.length]; + // append start + private static String[] split(String toSplit, String delimiter) { + if (toSplit != null && !toSplit.isEmpty() && delimiter != null && !delimiter.isEmpty()) { + int offset = toSplit.indexOf(delimiter); + if (offset < 0) { + return null; + } else { + String beforeDelimiter = toSplit.substring(0, offset); + String afterDelimiter = toSplit.substring(offset + delimiter.length()); + return new String[]{beforeDelimiter, afterDelimiter}; + } + } else { + return null; + } + } - for(int i = 0; i < array.length; ++i) { - String element = array[i]; - result[i] = element != null ? element.trim() : null; - } + private static String[] trimArrayElements(String[] array) { + if (array == null || array.length == 0) { + return new String[0]; + } else { + String[] result = new String[array.length]; - return result; - } - } - // append end + for (int i = 0; i < array.length; ++i) { + String element = array[i]; + result[i] = element != null ? element.trim() : null; + } + + return result; + } + } - private List tokenize(String json) { - List list = new ArrayList(); - int index = 0; - int inObject = 0; - int inList = 0; - boolean inValue = false; - boolean inEscape = false; - StringBuilder build = new StringBuilder(); - while (index < json.length()) { - char current = json.charAt(index); - if (inEscape) { - build.append(current); - index++; - inEscape = false; - continue; - } - if (current == '{') { - inObject++; - } - if (current == '}') { - inObject--; - } - if (current == '[') { - inList++; - } - if (current == ']') { - inList--; - } - if (current == '"') { - inValue = !inValue; - } - if (current == ',' && inObject == 0 && inList == 0 && !inValue) { - list.add(build.toString()); - build.setLength(0); - } - else if (current == '\\') { - inEscape = true; - } - else { - build.append(current); - } - index++; - } - if (build.length() > 0) { - list.add(build.toString()); - } - return list; - } + private List tokenize(String json) { + List list = new ArrayList<>(); + int index = 0; + int inObject = 0; + int inList = 0; + boolean inValue = false; + boolean inEscape = false; + StringBuilder build = new StringBuilder(); + while (index < json.length()) { + char current = json.charAt(index); + if (inEscape) { + build.append(current); + index++; + inEscape = false; + continue; + } + if (current == '{') { + inObject++; + } + if (current == '}') { + inObject--; + } + if (current == '[') { + inList++; + } + if (current == ']') { + inList--; + } + if (current == '"') { + inValue = !inValue; + } + if (current == ',' && inObject == 0 && inList == 0 && !inValue) { + list.add(build.toString()); + build.setLength(0); + } else if (current == '\\') { + inEscape = true; + } else { + build.append(current); + } + index++; + } + if (build.length() > 0) { + list.add(build.toString()); + } + return list; + } - // plugin util - private static String trimTrailingCharacter(String string, char c) { - if (string.length() > 0 && string.charAt(string.length() - 1) == c) { - return string.substring(0, string.length() - 1); - } - return string; - } + // plugin util + private static String trimTrailingCharacter(String string, char c) { + if (string.length() > 0 && string.charAt(string.length() - 1) == c) { + return string.substring(0, string.length() - 1); + } + return string; + } - private static String trimLeadingCharacter(String string, char c) { - if (string.length() > 0 && string.charAt(0) == c) { - return string.substring(1); - } - return string; - } + private static String trimLeadingCharacter(String string, char c) { + if (string.length() > 0 && string.charAt(0) == c) { + return string.substring(1); + } + return string; + } } diff --git a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonwriter.java b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonwriter.java index 2f58e892..4145ed06 100644 --- a/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonwriter.java +++ b/datax-registry/src/main/java/com.wugui.datax.registry/util/json/BasicJsonwriter.java @@ -82,13 +82,13 @@ public class BasicJsonwriter { // string json.append(STR_SLASH).append(value.toString()).append(STR_SLASH); - } else if ( value instanceof Boolean + } else if (value instanceof Boolean || value instanceof Short || value instanceof Integer || value instanceof Long || value instanceof Float || value instanceof Double - ) { + ) { // number json.append(value); @@ -191,5 +191,4 @@ public class BasicJsonwriter { } - } \ No newline at end of file diff --git a/datax-rpc/src/main/java/com/wugui/datax/rpc/registry/impl/LocalServiceRegistry.java b/datax-rpc/src/main/java/com/wugui/datax/rpc/registry/impl/LocalServiceRegistry.java index a4f4d264..0da1343a 100644 --- a/datax-rpc/src/main/java/com/wugui/datax/rpc/registry/impl/LocalServiceRegistry.java +++ b/datax-rpc/src/main/java/com/wugui/datax/rpc/registry/impl/LocalServiceRegistry.java @@ -36,7 +36,7 @@ public class LocalServiceRegistry extends ServiceRegistry { @Override public boolean registry(Set keys, String value) { - if (keys==null || keys.size()==0 || value==null || value.trim().length()==0) { + if (keys == null || keys.size() == 0 || value == null || value.trim().length() == 0) { return false; } for (String key : keys) { @@ -52,7 +52,7 @@ public class LocalServiceRegistry extends ServiceRegistry { @Override public boolean remove(Set keys, String value) { - if (keys==null || keys.size()==0 || value==null || value.trim().length()==0) { + if (keys == null || keys.size() == 0 || value == null || value.trim().length() == 0) { return false; } for (String key : keys) { @@ -66,7 +66,7 @@ public class LocalServiceRegistry extends ServiceRegistry { @Override public Map> discovery(Set keys) { - if (keys==null || keys.size()==0) { + if (keys == null || keys.size() == 0) { return null; } Map> registryDataTmp = new HashMap>(); diff --git a/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/call/XxlRpcInvokeFuture.java b/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/call/XxlRpcInvokeFuture.java index ecf416c2..4373afee 100644 --- a/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/call/XxlRpcInvokeFuture.java +++ b/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/call/XxlRpcInvokeFuture.java @@ -20,13 +20,13 @@ public class XxlRpcInvokeFuture implements Future { public XxlRpcInvokeFuture(XxlRpcFutureResponse futureResponse) { this.futureResponse = futureResponse; } - public void stop(){ + + public void stop() { // remove-InvokerFuture futureResponse.removeInvokerFuture(); } - @Override public boolean cancel(boolean mayInterruptIfRunning) { return futureResponse.cancel(mayInterruptIfRunning); diff --git a/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/impl/XxlRpcSpringInvokerFactory.java b/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/impl/XxlRpcSpringInvokerFactory.java index 7debd03d..1f85f0e9 100644 --- a/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/impl/XxlRpcSpringInvokerFactory.java +++ b/datax-rpc/src/main/java/com/wugui/datax/rpc/remoting/invoker/impl/XxlRpcSpringInvokerFactory.java @@ -26,7 +26,7 @@ import java.util.Set; * * @author xuxueli 2018-10-19 */ -public class XxlRpcSpringInvokerFactory extends InstantiationAwareBeanPostProcessorAdapter implements InitializingBean,DisposableBean, BeanFactoryAware { +public class XxlRpcSpringInvokerFactory extends InstantiationAwareBeanPostProcessorAdapter implements InitializingBean, DisposableBean, BeanFactoryAware { private Logger logger = LoggerFactory.getLogger(XxlRpcSpringInvokerFactory.class); // ---------------------- config ---------------------- diff --git a/datax-rpc/src/main/java/com/wugui/datax/rpc/util/IpUtil.java b/datax-rpc/src/main/java/com/wugui/datax/rpc/util/IpUtil.java index 75c98325..254e6bc7 100644 --- a/datax-rpc/src/main/java/com/wugui/datax/rpc/util/IpUtil.java +++ b/datax-rpc/src/main/java/com/wugui/datax/rpc/util/IpUtil.java @@ -24,7 +24,6 @@ public class IpUtil { private static final Pattern IP_PATTERN = Pattern.compile("\\d{1,3}(\\.\\d{1,3}){3,5}$"); - private static volatile InetAddress LOCAL_ADDRESS = null; // ---------------------- valid ---------------------- @@ -57,11 +56,10 @@ public class IpUtil { return false; } String name = address.getHostAddress(); - boolean result = (name != null + return (name != null && IP_PATTERN.matcher(name).matches() && !ANYHOST_VALUE.equals(name) && !LOCALHOST_VALUE.equals(name)); - return result; } @@ -125,7 +123,7 @@ public class IpUtil { InetAddress addressItem = toValidAddress(addresses.nextElement()); if (addressItem != null) { try { - if(addressItem.isReachable(100)){ + if (addressItem.isReachable(100)) { return addressItem; } } catch (IOException e) { @@ -168,7 +166,7 @@ public class IpUtil { * * @return String */ - public static String getIp(){ + public static String getIp() { return getLocalAddress().getHostAddress(); } @@ -178,19 +176,19 @@ public class IpUtil { * @param port * @return String */ - public static String getIpPort(int port){ + public static String getIpPort(int port) { String ip = getIp(); return getIpPort(ip, port); } - public static String getIpPort(String ip, int port){ - if (ip==null) { + public static String getIpPort(String ip, int port) { + if (ip == null) { return null; } return ip.concat(":").concat(String.valueOf(port)); } - public static Object[] parseIpPort(String address){ + public static Object[] parseIpPort(String address) { String[] array = address.split(":"); String host = array[0]; diff --git a/datax-rpc/src/main/java/com/wugui/datax/rpc/util/NetUtil.java b/datax-rpc/src/main/java/com/wugui/datax/rpc/util/NetUtil.java index 985ab986..d3a15dba 100644 --- a/datax-rpc/src/main/java/com/wugui/datax/rpc/util/NetUtil.java +++ b/datax-rpc/src/main/java/com/wugui/datax/rpc/util/NetUtil.java @@ -47,7 +47,7 @@ public class NetUtil { * @return */ public static boolean isPortUsed(int port) { - boolean used = false; + boolean used; ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(port); diff --git a/datax-rpc/src/main/java/com/wugui/datax/rpc/util/XxlRpcException.java b/datax-rpc/src/main/java/com/wugui/datax/rpc/util/XxlRpcException.java index add11525..14feb011 100644 --- a/datax-rpc/src/main/java/com/wugui/datax/rpc/util/XxlRpcException.java +++ b/datax-rpc/src/main/java/com/wugui/datax/rpc/util/XxlRpcException.java @@ -4,6 +4,7 @@ package com.wugui.datax.rpc.util; * @author xuxueli 2018-10-20 23:00:40 */ public class XxlRpcException extends RuntimeException { + private static final long serialVersionUID = 42L; public XxlRpcException(String msg) { From c56d76d16c659f68c1da889cfe28545387be5826 Mon Sep 17 00:00:00 2001 From: water <672684719@qq.com> Date: Sun, 29 Mar 2020 23:49:41 +0800 Subject: [PATCH 10/10] test --- .../src/main/java/com/wugui/datatx/core/thread/JobThread.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java b/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java index 8fd19b1d..85350edd 100644 --- a/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java +++ b/datax-core/src/main/java/com/wugui/datatx/core/thread/JobThread.java @@ -46,8 +46,8 @@ public class JobThread extends Thread { public JobThread(int jobId, IJobHandler handler) { this.jobId = jobId; this.handler = handler; - this.triggerQueue = new LinkedBlockingQueue(); - this.triggerLogIdSet = Collections.synchronizedSet(new HashSet()); + this.triggerQueue = new LinkedBlockingQueue<>(); + this.triggerLogIdSet = Collections.synchronizedSet(new HashSet<>()); } public IJobHandler getHandler() {