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

This commit is contained in:
xueli.xue 2020-10-30 14:49:45 +08:00
parent 57702ec2ab
commit 2276285673
6 changed files with 25 additions and 6 deletions

View File

@ -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[规划中]

View File

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

View File

@ -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); // 总记录数

View File

@ -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 '*********';

View File

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

View File

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