diff --git a/orion-visor-launch/src/main/resources/application-dev.yaml b/orion-visor-launch/src/main/resources/application-dev.yaml
index d5a313c7..914d5c78 100644
--- a/orion-visor-launch/src/main/resources/application-dev.yaml
+++ b/orion-visor-launch/src/main/resources/application-dev.yaml
@@ -1,18 +1,18 @@
spring:
datasource:
druid:
- url: jdbc:mysql://127.0.0.1:3306/orion_visor?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true
+ url: jdbc:mysql://116.62.194.246:3306/orion_visor?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true
username: root
- password: Data@123456
+ password: Orionsec@123456
initial-size: 0
min-idle: 1
max-active: 5
stat-view-servlet:
enabled: false
redis:
- host: 127.0.0.1
+ host: 116.62.194.246
port: 6379
- password: Data@123456
+ password: Orionsec@123456
redisson:
threads: 2
netty-threads: 2
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java
index a9878e56..64f6a0a6 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/ExecJobController.java
@@ -107,6 +107,15 @@ public class ExecJobController {
return execJobService.getExecJobPage(request);
}
+ @DemoDisableApi
+ @OperatorLog(ExecJobOperatorType.SET_EXEC_USER)
+ @PutMapping("/set-exec-user")
+ @Operation(summary = "设置计划任务执行用户")
+ @PreAuthorize("@ss.hasPermission('exec:exec-job:set-exec-user')")
+ public Integer setExecJobExecUser(@Validated @RequestBody ExecJobSetExecUserRequest request) {
+ return execJobService.setExecJobExecUser(request);
+ }
+
@DemoDisableApi
@OperatorLog(ExecJobOperatorType.DELETE)
@DeleteMapping("/delete")
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandLogOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandLogOperatorType.java
index ec4363a2..9d4709d6 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandLogOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandLogOperatorType.java
@@ -16,10 +16,11 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
+
/**
* 批量执行日志 操作记录类型
*
@@ -45,12 +46,12 @@ public class ExecCommandLogOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除批量执行日志 ${count} 条"),
- new OperatorType(OperatorRiskLevel.H, DELETE_HOST, "删除批量执行主机日志 ${logId} ${hostName}"),
- new OperatorType(OperatorRiskLevel.H, CLEAR, "清理批量执行日志 ${count} 条"),
- new OperatorType(OperatorRiskLevel.L, DOWNLOAD, "下载批量执行日志 ${logId} ${hostName}"),
- new OperatorType(OperatorRiskLevel.M, INTERRUPT, "中断批量执行命令"),
- new OperatorType(OperatorRiskLevel.M, INTERRUPT_HOST, "中断批量执行主机命令 ${logId} ${hostName}"),
+ new OperatorType(H, DELETE, "删除批量执行日志 ${count} 条"),
+ new OperatorType(H, DELETE_HOST, "删除批量执行主机日志 ${logId} ${hostName}"),
+ new OperatorType(H, CLEAR, "清理批量执行日志 ${count} 条"),
+ new OperatorType(L, DOWNLOAD, "下载批量执行日志 ${logId} ${hostName}"),
+ new OperatorType(M, INTERRUPT, "中断批量执行命令"),
+ new OperatorType(M, INTERRUPT_HOST, "中断批量执行主机命令 ${logId} ${hostName}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandOperatorType.java
index 92a1509d..d0e4e32b 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecCommandOperatorType.java
@@ -16,10 +16,11 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.M;
+
/**
* 批量执行 操作记录类型
*
@@ -35,7 +36,7 @@ public class ExecCommandOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.M, EXEC, "执行主机命令"),
+ new OperatorType(M, EXEC, "执行主机命令"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobLogOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobLogOperatorType.java
index 8eee798b..b6c34667 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobLogOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobLogOperatorType.java
@@ -16,10 +16,11 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
+
/**
* 计划任务执行日志 操作记录类型
*
@@ -45,12 +46,12 @@ public class ExecJobLogOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除计划任务执行日志 ${count} 条"),
- new OperatorType(OperatorRiskLevel.H, DELETE_HOST, "删除计划任务执行主机日志 ${logId} ${hostName}"),
- new OperatorType(OperatorRiskLevel.H, CLEAR, "清理计划任务执行日志 ${count} 条"),
- new OperatorType(OperatorRiskLevel.L, DOWNLOAD, "下载计划任务执行日志 ${logId} ${hostName}"),
- new OperatorType(OperatorRiskLevel.M, INTERRUPT, "中断计划任务执行命令"),
- new OperatorType(OperatorRiskLevel.M, INTERRUPT_HOST, "中断计划任务执行主机命令 ${logId} ${hostName}"),
+ new OperatorType(H, DELETE, "删除计划任务执行日志 ${count} 条"),
+ new OperatorType(H, DELETE_HOST, "删除计划任务执行主机日志 ${logId} ${hostName}"),
+ new OperatorType(H, CLEAR, "清理计划任务执行日志 ${count} 条"),
+ new OperatorType(L, DOWNLOAD, "下载计划任务执行日志 ${logId} ${hostName}"),
+ new OperatorType(M, INTERRUPT, "中断计划任务执行命令"),
+ new OperatorType(M, INTERRUPT_HOST, "中断计划任务执行主机命令 ${logId} ${hostName}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java
index 7c859191..7fc94943 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecJobOperatorType.java
@@ -16,10 +16,11 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
+
/**
* 计划任务 操作日志类型
*
@@ -27,7 +28,7 @@ import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
* @version 1.0.3
* @since 2024-3-28 12:03
*/
-@Module("asset:exec-job")
+@Module("exec:exec-job")
public class ExecJobOperatorType extends InitializingOperatorTypes {
public static final String CREATE = "exec-job:create";
@@ -38,16 +39,25 @@ public class ExecJobOperatorType extends InitializingOperatorTypes {
public static final String TRIGGER = "exec-job:trigger";
+ public static final String SET_EXEC_USER = "exec-job:set-exec-user";
+
public static final String DELETE = "exec-job:delete";
+ public static final String IMPORT = "exec-job:import";
+
+ public static final String EXPORT = "exec-job:export";
+
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.L, CREATE, "创建计划任务 ${name}"),
- new OperatorType(OperatorRiskLevel.M, UPDATE, "更新计划任务 ${before}"),
- new OperatorType(OperatorRiskLevel.M, UPDATE_STATUS, "${statusName} 计划任务 ${name}"),
- new OperatorType(OperatorRiskLevel.M, TRIGGER, "手动触发计划任务 ${name}"),
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除计划任务 ${name}"),
+ new OperatorType(L, CREATE, "创建计划任务 ${name}"),
+ new OperatorType(M, UPDATE, "更新计划任务 ${before}"),
+ new OperatorType(M, UPDATE_STATUS, "${statusName} 计划任务 ${name}"),
+ new OperatorType(M, TRIGGER, "手动触发计划任务 ${name}"),
+ new OperatorType(M, SET_EXEC_USER, "修改计划任务 ${name} 执行用户为 ${username}"),
+ new OperatorType(H, DELETE, "删除计划任务 ${name}"),
+ new OperatorType(H, IMPORT, "导入计划任务 ${count} 条"),
+ new OperatorType(H, EXPORT, "导出计划任务 ${count} 条"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecTemplateOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecTemplateOperatorType.java
index 9497ba5d..f128f68d 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecTemplateOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/ExecTemplateOperatorType.java
@@ -16,10 +16,11 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
+
/**
* 执行模板 操作日志类型
*
@@ -39,9 +40,9 @@ public class ExecTemplateOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.L, CREATE, "创建执行模板 ${name}"),
- new OperatorType(OperatorRiskLevel.M, UPDATE, "更新执行模板 ${name}"),
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除执行模板 ${name}"),
+ new OperatorType(L, CREATE, "创建执行模板 ${name}"),
+ new OperatorType(M, UPDATE, "更新执行模板 ${name}"),
+ new OperatorType(H, DELETE, "删除执行模板 ${name}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostGroupOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostGroupOperatorType.java
index 2d111ee7..758f0c8e 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostGroupOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostGroupOperatorType.java
@@ -16,10 +16,11 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
+
/**
* 主机分组 操作日志类型
*
@@ -45,12 +46,12 @@ public class HostGroupOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.L, CREATE, "创建主机分组 ${name}"),
- new OperatorType(OperatorRiskLevel.L, RENAME, "重命名主机分组 ${before} -> ${name}"),
- new OperatorType(OperatorRiskLevel.L, MOVE, "移动主机分组 ${source} 到 ${target}(${position})"),
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除主机分组 ${groupName}"),
- new OperatorType(OperatorRiskLevel.M, UPDATE_REL, "修改分组内主机 ${groupName}"),
- new OperatorType(OperatorRiskLevel.H, GRANT, "将主机分组权限授予 ${grantType} ${grantName}"),
+ new OperatorType(L, CREATE, "创建主机分组 ${name}"),
+ new OperatorType(L, RENAME, "重命名主机分组 ${before} -> ${name}"),
+ new OperatorType(L, MOVE, "移动主机分组 ${source} 到 ${target}(${position})"),
+ new OperatorType(H, DELETE, "删除主机分组 ${groupName}"),
+ new OperatorType(M, UPDATE_REL, "修改分组内主机 ${groupName}"),
+ new OperatorType(H, GRANT, "将主机分组权限授予 ${grantType} ${grantName}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostIdentityOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostIdentityOperatorType.java
index 4b13912b..079f5a71 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostIdentityOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostIdentityOperatorType.java
@@ -16,10 +16,12 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.H;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.L;
+
/**
* 主机身份 操作日志类型
*
@@ -41,10 +43,10 @@ public class HostIdentityOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.L, CREATE, "创建主机身份 ${name}"),
- new OperatorType(OperatorRiskLevel.L, UPDATE, "修改主机身份 ${name}"),
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除主机身份 ${name}"),
- new OperatorType(OperatorRiskLevel.H, GRANT, "将主机身份权限授予 ${grantType} ${grantName}"),
+ new OperatorType(L, CREATE, "创建主机身份 ${name}"),
+ new OperatorType(L, UPDATE, "修改主机身份 ${name}"),
+ new OperatorType(H, DELETE, "删除主机身份 ${name}"),
+ new OperatorType(H, GRANT, "将主机身份权限授予 ${grantType} ${grantName}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostKeyOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostKeyOperatorType.java
index 0be618d0..f15e9dda 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostKeyOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostKeyOperatorType.java
@@ -16,10 +16,12 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.H;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.L;
+
/**
* 主机密钥 操作日志类型
*
@@ -41,10 +43,10 @@ public class HostKeyOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.L, CREATE, "创建主机密钥 ${name}"),
- new OperatorType(OperatorRiskLevel.L, UPDATE, "修改主机密钥 ${name}"),
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除主机密钥 ${name}"),
- new OperatorType(OperatorRiskLevel.H, GRANT, "将主机密钥权限授予 ${grantType} ${grantName}"),
+ new OperatorType(L, CREATE, "创建主机密钥 ${name}"),
+ new OperatorType(L, UPDATE, "修改主机密钥 ${name}"),
+ new OperatorType(H, DELETE, "删除主机密钥 ${name}"),
+ new OperatorType(H, GRANT, "将主机密钥权限授予 ${grantType} ${grantName}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java
index e061d93d..02922bc6 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java
@@ -16,10 +16,11 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
+
/**
* 主机 操作日志类型
*
@@ -43,11 +44,11 @@ public class HostOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.L, CREATE, "创建主机 ${name}"),
- new OperatorType(OperatorRiskLevel.L, UPDATE, "修改主机 ${name}"),
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除主机 ${count} 条"),
- new OperatorType(OperatorRiskLevel.M, UPDATE_STATUS, "修改主机状态 ${name} - ${status}"),
- new OperatorType(OperatorRiskLevel.M, UPDATE_CONFIG, "修改主机配置 ${name}"),
+ new OperatorType(L, CREATE, "创建主机 ${name}"),
+ new OperatorType(L, UPDATE, "修改主机 ${name}"),
+ new OperatorType(H, DELETE, "删除主机 ${count} 条"),
+ new OperatorType(M, UPDATE_STATUS, "修改主机状态 ${name} - ${status}"),
+ new OperatorType(M, UPDATE_CONFIG, "修改主机配置 ${name}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalConnectLogOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalConnectLogOperatorType.java
index b945e582..7e366821 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalConnectLogOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalConnectLogOperatorType.java
@@ -16,10 +16,12 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.H;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.M;
+
/**
* 终端连接日志 操作日志类型
*
@@ -39,9 +41,9 @@ public class TerminalConnectLogOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除终端连接记录 ${count} 条"),
- new OperatorType(OperatorRiskLevel.H, CLEAR, "清空终端连接记录 ${count} 条"),
- new OperatorType(OperatorRiskLevel.M, FORCE_OFFLINE, "强制下线终端连接 ${hostName}"),
+ new OperatorType(H, DELETE, "删除终端连接记录 ${count} 条"),
+ new OperatorType(H, CLEAR, "清空终端连接记录 ${count} 条"),
+ new OperatorType(M, FORCE_OFFLINE, "强制下线终端连接 ${hostName}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalOperatorType.java
index 886f9847..b1f63228 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/TerminalOperatorType.java
@@ -17,12 +17,13 @@ package org.dromara.visor.module.asset.define.operator;
import cn.orionsec.kit.lang.utils.collect.Lists;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
import java.util.List;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.*;
+
/**
* 终端 操作日志类型
*
@@ -70,17 +71,17 @@ public class TerminalOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.L, CONNECT, "连接主机 ${connectType} ${hostName}"),
- new OperatorType(OperatorRiskLevel.H, DELETE_SFTP_LOG, "删除 SFTP 操作日志 ${count} 条"),
- new OperatorType(OperatorRiskLevel.L, SFTP_MKDIR, "创建文件夹 ${hostName} ${path}"),
- new OperatorType(OperatorRiskLevel.L, SFTP_TOUCH, "创建文件 ${hostName} ${path}"),
- new OperatorType(OperatorRiskLevel.M, SFTP_MOVE, "移动文件 ${hostName} ${path} 至 ${target}"),
- new OperatorType(OperatorRiskLevel.H, SFTP_REMOVE, "删除文件 ${hostName} ${path}"),
- new OperatorType(OperatorRiskLevel.H, SFTP_TRUNCATE, "截断文件 ${hostName} ${path}"),
- new OperatorType(OperatorRiskLevel.M, SFTP_CHMOD, "文件提权 ${hostName} ${path} ${mod}"),
- new OperatorType(OperatorRiskLevel.M, SFTP_SET_CONTENT, "修改文件内容 ${hostName} ${path}"),
- new OperatorType(OperatorRiskLevel.M, SFTP_UPLOAD, "上传文件 ${hostName} ${path}"),
- new OperatorType(OperatorRiskLevel.M, SFTP_DOWNLOAD, "下载文件 ${hostName} ${path}"),
+ new OperatorType(L, CONNECT, "连接主机 ${connectType} ${hostName}"),
+ new OperatorType(H, DELETE_SFTP_LOG, "删除 SFTP 操作日志 ${count} 条"),
+ new OperatorType(L, SFTP_MKDIR, "创建文件夹 ${hostName} ${path}"),
+ new OperatorType(L, SFTP_TOUCH, "创建文件 ${hostName} ${path}"),
+ new OperatorType(M, SFTP_MOVE, "移动文件 ${hostName} ${path} 至 ${target}"),
+ new OperatorType(H, SFTP_REMOVE, "删除文件 ${hostName} ${path}"),
+ new OperatorType(H, SFTP_TRUNCATE, "截断文件 ${hostName} ${path}"),
+ new OperatorType(M, SFTP_CHMOD, "文件提权 ${hostName} ${path} ${mod}"),
+ new OperatorType(M, SFTP_SET_CONTENT, "修改文件内容 ${hostName} ${path}"),
+ new OperatorType(M, SFTP_UPLOAD, "上传文件 ${hostName} ${path}"),
+ new OperatorType(M, SFTP_DOWNLOAD, "下载文件 ${hostName} ${path}"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/UploadTaskOperatorType.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/UploadTaskOperatorType.java
index 1455ae2e..44f567cc 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/UploadTaskOperatorType.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/UploadTaskOperatorType.java
@@ -16,10 +16,12 @@
package org.dromara.visor.module.asset.define.operator;
import org.dromara.visor.framework.biz.operator.log.core.annotation.Module;
-import org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel;
import org.dromara.visor.framework.biz.operator.log.core.factory.InitializingOperatorTypes;
import org.dromara.visor.framework.biz.operator.log.core.model.OperatorType;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.H;
+import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.M;
+
/**
* 上传任务 操作日志类型
*
@@ -41,10 +43,10 @@ public class UploadTaskOperatorType extends InitializingOperatorTypes {
@Override
public OperatorType[] types() {
return new OperatorType[]{
- new OperatorType(OperatorRiskLevel.M, UPLOAD, "批量上传文件 ${count} 个 (${name})"),
- new OperatorType(OperatorRiskLevel.M, CANCEL, "取消上传文件 ${name}"),
- new OperatorType(OperatorRiskLevel.H, DELETE, "删除上传记录 ${count}条"),
- new OperatorType(OperatorRiskLevel.H, CLEAR, "清理上传记录 ${count}条"),
+ new OperatorType(M, UPLOAD, "批量上传文件 ${count} 个 (${name})"),
+ new OperatorType(M, CANCEL, "取消上传文件 ${name}"),
+ new OperatorType(H, DELETE, "删除上传记录 ${count}条"),
+ new OperatorType(H, CLEAR, "清理上传记录 ${count}条"),
};
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecJobDO.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecJobDO.java
index 5e7238b8..637d05bc 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecJobDO.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecJobDO.java
@@ -81,4 +81,12 @@ public class ExecJobDO extends BaseDO {
@TableField("recent_log_id")
private Long recentLogId;
+ @Schema(description = "执行用户id")
+ @TableField("exec_user_id")
+ private Long execUserId;
+
+ @Schema(description = "执行用户名")
+ @TableField("exec_username")
+ private String execUsername;
+
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecLogDO.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecLogDO.java
index 1014d7f0..50a5791a 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecLogDO.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/domain/ExecLogDO.java
@@ -63,6 +63,10 @@ public class ExecLogDO extends BaseDO {
@TableField("source_id")
private Long sourceId;
+ @Schema(description = "执行方式")
+ @TableField("exec_mode")
+ private String execMode;
+
@Schema(description = "执行描述")
@TableField("description")
private String description;
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/dto/ExecCommandExecDTO.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/dto/ExecCommandExecDTO.java
index 956ef61a..4351b72e 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/dto/ExecCommandExecDTO.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/dto/ExecCommandExecDTO.java
@@ -49,6 +49,9 @@ public class ExecCommandExecDTO {
@Schema(description = "来源id")
private Long sourceId;
+ @Schema(description = "执行方式")
+ private String execMode;
+
@Schema(description = "执行序列")
private Integer execSeq;
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobSetExecUserRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobSetExecUserRequest.java
new file mode 100644
index 00000000..e1d96477
--- /dev/null
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobSetExecUserRequest.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2023 - present Jiahang Li (visor.orionsec.cn ljh1553488six@139.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.dromara.visor.module.asset.entity.request.exec;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import org.dromara.visor.framework.common.entity.PageRequest;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 设置计划任务执行用户 查询请求对象
+ *
+ * @author Jiahang Li
+ * @version 1.0.3
+ * @since 2024-3-28 12:03
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Schema(name = "ExecJobSetExecUserRequest", description = "设置计划任务执行用户 查询请求对象")
+public class ExecJobSetExecUserRequest extends PageRequest {
+
+ @NotNull
+ @Schema(description = "id")
+ private Long id;
+
+ @NotNull
+ @Schema(description = "userId")
+ private Long userId;
+
+}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobTriggerRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobTriggerRequest.java
index 6b3ac4f8..e8146e97 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobTriggerRequest.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecJobTriggerRequest.java
@@ -50,4 +50,7 @@ public class ExecJobTriggerRequest implements Serializable {
@Schema(description = "执行用户名")
private String username;
+ @Schema(description = "执行方式")
+ private String execMode;
+
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java
index ff7d69fa..884e3120 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/exec/ExecLogQueryRequest.java
@@ -55,6 +55,10 @@ public class ExecLogQueryRequest extends PageRequest {
@Schema(description = "执行来源id")
private Long sourceId;
+ @Size(max = 8)
+ @Schema(description = "执行方式")
+ private String execMode;
+
@Size(max = 128)
@Schema(description = "执行描述")
private String description;
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecJobVO.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecJobVO.java
index 553ba2af..5ff766f3 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecJobVO.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecJobVO.java
@@ -74,6 +74,12 @@ public class ExecJobVO implements Serializable {
@Schema(description = "最近执行时间")
private Date recentLogTime;
+ @Schema(description = "执行用户id")
+ private Long execUserId;
+
+ @Schema(description = "执行用户名")
+ private String execUsername;
+
@Schema(description = "创建时间")
private Date createTime;
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecLogVO.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecLogVO.java
index 91a7839d..393b4462 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecLogVO.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/vo/ExecLogVO.java
@@ -44,6 +44,9 @@ public class ExecLogVO implements Serializable {
@Schema(description = "id")
private Long id;
+ @Schema(description = "执行方式")
+ private String execMode;
+
@Schema(description = "执行用户id")
private Long userId;
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/enums/ExecModeEnum.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/enums/ExecModeEnum.java
new file mode 100644
index 00000000..d1d9494d
--- /dev/null
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/enums/ExecModeEnum.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2023 - present Jiahang Li (visor.orionsec.cn ljh1553488six@139.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.dromara.visor.module.asset.enums;
+
+/**
+ * 执行方式
+ *
+ * @author Jiahang Li
+ * @version 1.0.0
+ * @since 2024/12/12 17:37
+ */
+public enum ExecModeEnum {
+
+ /**
+ * 手动执行
+ */
+ MANUAL,
+
+ /**
+ * 定时任务
+ */
+ JOB,
+
+}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java
index bd7742dd..a62b9e5c 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java
@@ -27,7 +27,6 @@ import org.dromara.visor.framework.common.utils.Valid;
import org.dromara.visor.module.asset.dao.HostIdentityDAO;
import org.dromara.visor.module.asset.dao.HostKeyDAO;
import org.dromara.visor.module.asset.enums.HostSshAuthTypeEnum;
-import org.dromara.visor.module.asset.enums.HostSshOsTypeEnum;
import org.dromara.visor.module.asset.handler.host.config.model.HostSshConfigModel;
import org.springframework.stereotype.Component;
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/command/handler/BaseExecCommandHandler.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/command/handler/BaseExecCommandHandler.java
index 27854dcc..61c7937e 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/command/handler/BaseExecCommandHandler.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/command/handler/BaseExecCommandHandler.java
@@ -146,7 +146,7 @@ public abstract class BaseExecCommandHandler implements IExecCommandHandler {
// 初始化日志
this.initLogOutputStream();
// 打开会话
- TerminalConnectDTO connect = terminalService.getTerminalConnectInfo(execHostCommand.getHostId());
+ TerminalConnectDTO connect = terminalService.getTerminalConnectInfo(execHostCommand.getHostId(), execCommand.getUserId());
this.sessionStore = SessionStores.openSessionStore(connect);
if (Booleans.isTrue(execCommand.getScriptExec())) {
// 上传脚本文件
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/job/ExecCommandJob.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/job/ExecCommandJob.java
index 18a6e1ee..05424b3e 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/job/ExecCommandJob.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/exec/job/ExecCommandJob.java
@@ -18,9 +18,11 @@ package org.dromara.visor.module.asset.handler.host.exec.job;
import cn.orionsec.kit.spring.SpringHolder;
import lombok.extern.slf4j.Slf4j;
import org.dromara.visor.framework.biz.operator.log.core.utils.OperatorLogs;
-import org.dromara.visor.framework.common.constant.Const;
import org.dromara.visor.framework.common.constant.FieldConst;
+import org.dromara.visor.module.asset.dao.ExecJobDAO;
+import org.dromara.visor.module.asset.entity.domain.ExecJobDO;
import org.dromara.visor.module.asset.entity.request.exec.ExecJobTriggerRequest;
+import org.dromara.visor.module.asset.enums.ExecModeEnum;
import org.dromara.visor.module.asset.service.ExecJobService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
@@ -35,19 +37,28 @@ import org.quartz.JobExecutionContext;
@Slf4j
public class ExecCommandJob implements Job {
+ private static final ExecJobDAO execJobDAO = SpringHolder.getBean(ExecJobDAO.class);
+
private static final ExecJobService execJobService = SpringHolder.getBean(ExecJobService.class);
@Override
public void execute(JobExecutionContext context) {
long id = context.getMergedJobDataMap().getLong(FieldConst.KEY);
log.info("ExecCommandJob.execute id: {}", id);
+ // 查询任务
+ ExecJobDO job = execJobDAO.selectById(id);
+ if (job == null) {
+ log.info("ExecCommandJob.execute absent id: {}", id);
+ return;
+ }
// 执行命令
ExecJobTriggerRequest request = ExecJobTriggerRequest.builder()
.id(id)
- .userId(Const.SYSTEM_USER_ID)
- .username(Const.SYSTEM_USERNAME)
+ .userId(job.getExecUserId())
+ .username(job.getExecUsername())
+ .execMode(ExecModeEnum.JOB.name())
.build();
- execJobService.triggerExecJob(request);
+ execJobService.triggerExecJob(request, job);
// 清理日志上下文
OperatorLogs.clear();
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java
index f41aef13..4bd59504 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/terminal/handler/TerminalCheckHandler.java
@@ -95,7 +95,7 @@ public class TerminalCheckHandler extends AbstractTerminalHandler getExecJobPage(ExecJobQueryRequest request);
+ /**
+ * 设置执行用户
+ *
+ * @param request request
+ * @return effect
+ */
+ Integer setExecJobExecUser(ExecJobSetExecUserRequest request);
+
/**
* 获取下一个执行序列
*
@@ -112,7 +121,8 @@ public interface ExecJobService {
* 触发任务
*
* @param request request
+ * @param job job
*/
- void triggerExecJob(ExecJobTriggerRequest request);
+ void triggerExecJob(ExecJobTriggerRequest request, ExecJobDO job);
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/TerminalService.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/TerminalService.java
index aaed144e..ac7cd8b5 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/TerminalService.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/TerminalService.java
@@ -84,7 +84,7 @@ public interface TerminalService {
* @param userId userId
* @return session
*/
- TerminalConnectDTO getTerminalConnectInfo(Long userId, Long hostId);
+ TerminalConnectDTO getTerminalConnectInfo(Long hostId, Long userId);
/**
* 使用用户配置获取连接信息
@@ -93,6 +93,6 @@ public interface TerminalService {
* @param userId userId
* @return session
*/
- TerminalConnectDTO getTerminalConnectInfo(Long userId, HostDO host);
+ TerminalConnectDTO getTerminalConnectInfo(HostDO host, Long userId);
}
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java
index 297a085e..611802cf 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecCommandServiceImpl.java
@@ -121,12 +121,14 @@ public class ExecCommandServiceImpl implements ExecCommandService {
execRequest.setUserId(userId);
execRequest.setUsername(user.getUsername());
execRequest.setSource(ExecSourceEnum.BATCH.name());
+ execRequest.setExecMode(ExecModeEnum.MANUAL.name());
return this.execCommandWithSource(execRequest);
}
@Override
@Transactional(rollbackFor = Exception.class)
public ExecLogVO execCommandWithSource(ExecCommandExecDTO request) {
+ log.info("ExecService.execCommandWithSource start params: {}", JSON.toJSONString(request));
String command = request.getCommand();
List hostIdList = request.getHostIdList();
// 查询主机信息
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java
index cb454f40..457dedf8 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/ExecJobServiceImpl.java
@@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.visor.framework.biz.operator.log.core.utils.OperatorLogs;
import org.dromara.visor.framework.common.constant.Const;
import org.dromara.visor.framework.common.constant.ErrorMessage;
+import org.dromara.visor.framework.common.security.LoginUser;
import org.dromara.visor.framework.common.utils.Valid;
import org.dromara.visor.framework.job.core.utils.QuartzUtils;
import org.dromara.visor.framework.security.core.utils.SecurityUtils;
@@ -41,15 +42,13 @@ import org.dromara.visor.module.asset.entity.request.exec.*;
import org.dromara.visor.module.asset.entity.vo.ExecJobVO;
import org.dromara.visor.module.asset.entity.vo.ExecLogVO;
import org.dromara.visor.module.asset.entity.vo.HostBaseVO;
-import org.dromara.visor.module.asset.enums.ExecJobStatusEnum;
-import org.dromara.visor.module.asset.enums.ExecSourceEnum;
-import org.dromara.visor.module.asset.enums.HostTypeEnum;
-import org.dromara.visor.module.asset.enums.ScriptExecEnum;
+import org.dromara.visor.module.asset.enums.*;
import org.dromara.visor.module.asset.handler.host.exec.job.ExecCommandJob;
import org.dromara.visor.module.asset.service.AssetAuthorizedDataService;
import org.dromara.visor.module.asset.service.ExecCommandService;
import org.dromara.visor.module.asset.service.ExecJobHostService;
import org.dromara.visor.module.asset.service.ExecJobService;
+import org.dromara.visor.module.infra.api.SystemUserApi;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -57,7 +56,6 @@ import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -83,6 +81,9 @@ public class ExecJobServiceImpl implements ExecJobService {
@Resource
private HostDAO hostDAO;
+ @Resource
+ private SystemUserApi systemUserApi;
+
@Resource
private ExecJobHostService execJobHostService;
@@ -238,6 +239,30 @@ public class ExecJobServiceImpl implements ExecJobService {
return dataGrid;
}
+ @Override
+ public Integer setExecJobExecUser(ExecJobSetExecUserRequest request) {
+ Long id = request.getId();
+ Long userId = request.getUserId();
+ log.info("ExecJobService-setExecJobExecUser id: {}, userId: {}", id, userId);
+ // 查询任务
+ ExecJobDO job = execJobDAO.selectById(id);
+ Valid.notNull(job, ErrorMessage.DATA_ABSENT);
+ // 查询用户
+ String username = systemUserApi.getUsernameById(userId);
+ Valid.notNull(username, ErrorMessage.USER_ABSENT);
+ // 修改任务
+ ExecJobDO update = new ExecJobDO();
+ update.setId(id);
+ update.setExecUserId(userId);
+ update.setExecUsername(username);
+ int effect = execJobDAO.updateById(update);
+ // 设置日志参数
+ OperatorLogs.add(OperatorLogs.NAME, job.getName());
+ OperatorLogs.add(OperatorLogs.USERNAME, username);
+ log.info("ExecJobService-setExecJobExecUser effect: {}", effect);
+ return effect;
+ }
+
@Override
public Integer getNextExecSeq(Long id) {
// 自增
@@ -285,25 +310,27 @@ public class ExecJobServiceImpl implements ExecJobService {
@Transactional(rollbackFor = Exception.class)
public void manualTriggerExecJob(Long id) {
log.info("ExecJobService.manualTriggerExecJob start id: {}", id);
+ // 查询任务
+ ExecJobDO job = execJobDAO.selectById(id);
+ Valid.notNull(job, ErrorMessage.DATA_ABSENT);
+ // 触发请求
ExecJobTriggerRequest request = new ExecJobTriggerRequest();
request.setId(id);
+ request.setExecMode(ExecModeEnum.MANUAL.name());
// 设置执行用户
- Optional.ofNullable(SecurityUtils.getLoginUser())
- .ifPresent(s -> {
- request.setUserId(s.getId());
- request.setUsername(s.getUsername());
- });
+ LoginUser user = SecurityUtils.getLoginUser();
+ if (user != null) {
+ request.setUserId(user.getId());
+ request.setUsername(user.getUsername());
+ }
// 触发任务
- this.triggerExecJob(request);
+ this.triggerExecJob(request, job);
}
@Override
@Transactional(rollbackFor = Exception.class)
- public void triggerExecJob(ExecJobTriggerRequest request) {
+ public void triggerExecJob(ExecJobTriggerRequest request, ExecJobDO job) {
Long id = request.getId();
- // 查询任务
- ExecJobDO job = execJobDAO.selectById(id);
- Valid.notNull(job, ErrorMessage.DATA_ABSENT);
// 查询任务主机
List hostIdList = execJobHostService.getHostIdByJobId(id);
if (hostIdList.isEmpty()) {
@@ -322,6 +349,7 @@ public class ExecJobServiceImpl implements ExecJobService {
.username(request.getUsername())
.source(ExecSourceEnum.JOB.name())
.sourceId(id)
+ .execMode(request.getExecMode())
.execSeq(execSeq)
.description(job.getName())
.timeout(job.getTimeout())
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalServiceImpl.java
index f11dece2..4488be7c 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalServiceImpl.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalServiceImpl.java
@@ -170,16 +170,16 @@ public class TerminalServiceImpl implements TerminalService {
}
@Override
- public TerminalConnectDTO getTerminalConnectInfo(Long userId, Long hostId) {
+ public TerminalConnectDTO getTerminalConnectInfo(Long hostId, Long userId) {
// 查询主机
HostDO host = hostDAO.selectById(hostId);
Valid.notNull(host, ErrorMessage.HOST_ABSENT);
// 获取配置
- return this.getTerminalConnectInfo(userId, host);
+ return this.getTerminalConnectInfo(host, userId);
}
@Override
- public TerminalConnectDTO getTerminalConnectInfo(Long userId, HostDO host) {
+ public TerminalConnectDTO getTerminalConnectInfo(HostDO host, Long userId) {
Long hostId = host.getId();
log.info("HostTerminalService.getTerminalConnectInfo hostId: {}, userId: {}", hostId, userId);
// 验证主机是否有权限
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalSftpServiceImpl.java b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalSftpServiceImpl.java
index c7483611..7e04d3aa 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalSftpServiceImpl.java
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/TerminalSftpServiceImpl.java
@@ -131,7 +131,7 @@ public class TerminalSftpServiceImpl implements TerminalSftpService {
InputStream in = null;
try {
// 获取终端连接信息
- TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(SecurityUtils.getLoginUserId(), cache.getHostId());
+ TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(cache.getHostId(), SecurityUtils.getLoginUserId());
sessionStore = SessionStores.openSessionStore(connectInfo);
executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset());
executor.connect();
@@ -164,7 +164,7 @@ public class TerminalSftpServiceImpl implements TerminalSftpService {
InputStream in = null;
try {
// 获取终端连接信息
- TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(SecurityUtils.getLoginUserId(), cache.getHostId());
+ TerminalConnectDTO connectInfo = terminalService.getTerminalConnectInfo(cache.getHostId(), SecurityUtils.getLoginUserId());
sessionStore = SessionStores.openSessionStore(connectInfo);
executor = sessionStore.getSftpExecutor(connectInfo.getFileNameCharset());
executor.connect();
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecJobMapper.xml b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecJobMapper.xml
index a6605473..dc415613 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecJobMapper.xml
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecJobMapper.xml
@@ -14,6 +14,8 @@
+
+
@@ -23,7 +25,7 @@
- id, name, exec_seq, expression, timeout, script_exec, command, parameter_schema, status, recent_log_id, create_time, update_time, creator, updater, deleted
+ id, name, exec_seq, expression, timeout, script_exec, command, parameter_schema, status, recent_log_id, exec_user_id, exec_username, create_time, update_time, creator, updater, deleted
diff --git a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecLogMapper.xml b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecLogMapper.xml
index 2c49b99d..ab7845e5 100644
--- a/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecLogMapper.xml
+++ b/orion-visor-module-asset/orion-visor-module-asset-service/src/main/resources/mapper/ExecLogMapper.xml
@@ -9,6 +9,7 @@
+
@@ -27,7 +28,7 @@
- id, user_id, username, source, source_id, description, exec_seq, command, parameter_schema, timeout, script_exec, status, start_time, finish_time, create_time, update_time, creator, updater, deleted
+ id, user_id, username, source, source_id, exec_mode, description, exec_seq, command, parameter_schema, timeout, script_exec, status, start_time, finish_time, create_time, update_time, creator, updater, deleted