Browse Source

调度中心页面交互优化:用户管理模块密码列取消;多处表达autocomplete取消;执行器管理模块XSS拦截校验等;

xueli.xue 5 years ago
parent
commit
2276285673

+ 2 - 0
doc/XXL-JOB官方文档.md

@@ -2062,9 +2062,11 @@ data: post-data
 - 16、调度中心组件加载顺序优化,修复极端情况下调度组件初始慢导致的调度失败问题;
 - 16、调度中心组件加载顺序优化,修复极端情况下调度组件初始慢导致的调度失败问题;
 - 17、执行器注册线程优化,修复极端情况下初始化失败时导致NPE问题;
 - 17、执行器注册线程优化,修复极端情况下初始化失败时导致NPE问题;
 - 18、执行器Commandhandler示例任务优化,修复极端情况下脚本进程挂起问题;
 - 18、执行器Commandhandler示例任务优化,修复极端情况下脚本进程挂起问题;
+- 19、调度中心页面交互优化:用户管理模块密码列取消;多处表达autocomplete取消;执行器管理模块XSS拦截校验等;
 - 19、[ING]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
 - 19、[ING]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
 - 20、[ING]任务 misfire 策略:忽略、补偿一次、补偿最近10次……等;
 - 20、[ING]任务 misfire 策略:忽略、补偿一次、补偿最近10次……等;
 - 21、[规划中]执行器注册,异步写入;
 - 21、[规划中]执行器注册,异步写入;
+- 22、[规划中]默认开启访问令牌鉴权;
 
 
 
 
 ### 7.32 版本 v2.3.0 Release Notes[规划中]
 ### 7.32 版本 v2.3.0 Release Notes[规划中]

+ 10 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java

@@ -68,13 +68,23 @@ public class JobGroupController {
 		if (xxlJobGroup.getAppname().length()<4 || xxlJobGroup.getAppname().length()>64) {
 		if (xxlJobGroup.getAppname().length()<4 || xxlJobGroup.getAppname().length()>64) {
 			return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appname_length") );
 			return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appname_length") );
 		}
 		}
+		if (xxlJobGroup.getAppname().contains(">") || xxlJobGroup.getAppname().contains("<")) {
+			return new ReturnT<String>(500, "AppName"+I18nUtil.getString("system_unvalid") );
+		}
 		if (xxlJobGroup.getTitle()==null || xxlJobGroup.getTitle().trim().length()==0) {
 		if (xxlJobGroup.getTitle()==null || xxlJobGroup.getTitle().trim().length()==0) {
 			return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title")) );
 			return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title")) );
 		}
 		}
+		if (xxlJobGroup.getTitle().contains(">") || xxlJobGroup.getTitle().contains("<")) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_title")+I18nUtil.getString("system_unvalid") );
+		}
 		if (xxlJobGroup.getAddressType()!=0) {
 		if (xxlJobGroup.getAddressType()!=0) {
 			if (xxlJobGroup.getAddressList()==null || xxlJobGroup.getAddressList().trim().length()==0) {
 			if (xxlJobGroup.getAddressList()==null || xxlJobGroup.getAddressList().trim().length()==0) {
 				return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit") );
 				return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit") );
 			}
 			}
+			if (xxlJobGroup.getAddressList().contains(">") || xxlJobGroup.getAddressList().contains("<")) {
+				return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList")+I18nUtil.getString("system_unvalid") );
+			}
+
 			String[] addresss = xxlJobGroup.getAddressList().split(",");
 			String[] addresss = xxlJobGroup.getAddressList().split(",");
 			for (String item: addresss) {
 			for (String item: addresss) {
 				if (item==null || item.trim().length()==0) {
 				if (item==null || item.trim().length()==0) {

+ 7 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java

@@ -56,6 +56,13 @@ public class UserController {
         List<XxlJobUser> list = xxlJobUserDao.pageList(start, length, username, role);
         List<XxlJobUser> list = xxlJobUserDao.pageList(start, length, username, role);
         int list_count = xxlJobUserDao.pageListCount(start, length, username, role);
         int list_count = xxlJobUserDao.pageListCount(start, length, username, role);
 
 
+        // filter
+        if (list!=null && list.size()>0) {
+            for (XxlJobUser item: list) {
+                item.setPassword(null);
+            }
+        }
+
         // package result
         // package result
         Map<String, Object> maps = new HashMap<String, Object>();
         Map<String, Object> maps = new HashMap<String, Object>();
         maps.put("recordsTotal", list_count);		// 总记录数
         maps.put("recordsTotal", list_count);		// 总记录数

+ 1 - 1
xxl-job-admin/src/main/resources/static/js/user.index.1.js

@@ -33,7 +33,7 @@ $(function() {
 					},
 					},
 	                {
 	                {
 	                	"data": 'password',
 	                	"data": 'password',
-						"visible" : true,
+						"visible" : false,
                         "width":'20%',
                         "width":'20%',
                         "render": function ( data, type, row ) {
                         "render": function ( data, type, row ) {
                             return '*********';
                             return '*********';

+ 2 - 2
xxl-job-admin/src/main/resources/templates/jobgroup/jobgroup.index.ftl

@@ -28,13 +28,13 @@
                 <div class="col-xs-3">
                 <div class="col-xs-3">
                     <div class="input-group">
                     <div class="input-group">
                         <span class="input-group-addon">AppName</span>
                         <span class="input-group-addon">AppName</span>
-                        <input type="text" class="form-control" id="appname" autocomplete="on" placeholder="${I18n.system_please_input}AppName" >
+                        <input type="text" class="form-control" id="appname" placeholder="${I18n.system_please_input}AppName" >
                     </div>
                     </div>
                 </div>
                 </div>
                 <div class="col-xs-3">
                 <div class="col-xs-3">
                     <div class="input-group">
                     <div class="input-group">
                         <span class="input-group-addon">${I18n.jobgroup_field_title}</span>
                         <span class="input-group-addon">${I18n.jobgroup_field_title}</span>
-                        <input type="text" class="form-control" id="title" autocomplete="on" placeholder="${I18n.jobgroup_field_title}" >
+                        <input type="text" class="form-control" id="title" placeholder="${I18n.jobgroup_field_title}" >
                     </div>
                     </div>
                 </div>
                 </div>
                 <div class="col-xs-2">
                 <div class="col-xs-2">

+ 3 - 3
xxl-job-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl

@@ -46,17 +46,17 @@
                 </div>
                 </div>
                 <div class="col-xs-2">
                 <div class="col-xs-2">
                     <div class="input-group">
                     <div class="input-group">
-                        <input type="text" class="form-control" id="jobDesc" autocomplete="on" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" >
+                        <input type="text" class="form-control" id="jobDesc" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" >
                     </div>
                     </div>
                 </div>
                 </div>
                 <div class="col-xs-2">
                 <div class="col-xs-2">
                     <div class="input-group">
                     <div class="input-group">
-                        <input type="text" class="form-control" id="executorHandler" autocomplete="on" placeholder="${I18n.system_please_input}JobHandler" >
+                        <input type="text" class="form-control" id="executorHandler" placeholder="${I18n.system_please_input}JobHandler" >
                     </div>
                     </div>
                 </div>
                 </div>
                 <div class="col-xs-2">
                 <div class="col-xs-2">
                     <div class="input-group">
                     <div class="input-group">
-                        <input type="text" class="form-control" id="author" autocomplete="on" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" >
+                        <input type="text" class="form-control" id="author" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" >
                     </div>
                     </div>
                 </div>
                 </div>
 	            <div class="col-xs-1">
 	            <div class="col-xs-1">