This is an automated email from the ASF dual-hosted git repository.

casion pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git


The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
     new fc6101334 [ISSUE-3859]Add Audit Log (#3937)
fc6101334 is described below

commit fc61013342bfd18f18a4a5a6df4ff1b1eceb8fa0
Author: 成彬彬 <[email protected]>
AuthorDate: Wed Nov 30 22:51:57 2022 +0800

    [ISSUE-3859]Add Audit Log (#3937)
---
 .../apache/linkis/restful/CommonRestfulApi.java    |  2 +
 .../entrance/restful/EntranceLabelRestfulApi.java  |  1 +
 .../entrance/restful/EntranceMetricRestfulApi.java |  2 +-
 .../entrance/restful/EntranceRestfulApi.java       | 16 ++++++--
 .../entrance/restful/EntranceRestfulRemote.scala   | 13 +++++--
 .../am/restful/ECResourceInfoRestfulApi.java       |  4 +-
 .../linkis/manager/am/restful/EMRestfulApi.java    |  1 +
 .../linkis/bml/restful/BmlProjectRestful.java      | 19 ++++++++--
 .../apache/linkis/bml/restful/BmlRestfulApi.java   | 36 ++++++++++++------
 .../restful/api/ConfigurationRestfulApi.java       | 11 +++++-
 .../server/restful/ContextHistoryRestfulApi.java   |  6 +++
 .../cs/server/restful/ContextIDRestfulApi.java     | 15 +++++++-
 .../server/restful/ContextListenerRestfulApi.java  | 13 +++++++
 .../cs/server/restful/ContextRestfulApi.java       | 44 +++++++++++++++++++++-
 .../core/restful/DataSourceAdminRestfulApi.java    |  6 ++-
 .../query/server/restful/MetadataQueryRestful.java | 14 +++----
 .../server/restful/LinkisErrorCodeRestful.java     |  2 +
 .../instance/label/restful/InstanceRestful.java    |  6 ++-
 .../filesystem/restful/api/BMLFsRestfulApi.java    | 19 ++++++++--
 .../org/apache/linkis/udf/api/UDFRestfulApi.java   | 29 ++++++++------
 20 files changed, 206 insertions(+), 53 deletions(-)

diff --git 
a/linkis-commons/linkis-module/src/main/java/org/apache/linkis/restful/CommonRestfulApi.java
 
b/linkis-commons/linkis-module/src/main/java/org/apache/linkis/restful/CommonRestfulApi.java
index c7524e379..54d8188b8 100644
--- 
a/linkis-commons/linkis-module/src/main/java/org/apache/linkis/restful/CommonRestfulApi.java
+++ 
b/linkis-commons/linkis-module/src/main/java/org/apache/linkis/restful/CommonRestfulApi.java
@@ -18,6 +18,7 @@
 package org.apache.linkis.restful;
 
 import org.apache.linkis.server.Message;
+import org.apache.linkis.server.utils.ModuleUserUtils;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
@@ -40,6 +41,7 @@ public class CommonRestfulApi {
   @ApiOperation(value = "Offline", notes = "offline this service", response = 
Message.class)
   @RequestMapping(path = "/offline", method = RequestMethod.GET)
   public Message offline(HttpServletRequest req) {
+    ModuleUserUtils.getOperationUser(req, "offline");
     DiscoveryManager.getInstance().shutdownComponent();
     return Message.ok().data("msg", "Offline successfully.");
   }
diff --git 
a/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceLabelRestfulApi.java
 
b/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceLabelRestfulApi.java
index 0d34ce22f..8ea65cf66 100644
--- 
a/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceLabelRestfulApi.java
+++ 
b/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceLabelRestfulApi.java
@@ -70,6 +70,7 @@ public class EntranceLabelRestfulApi {
   @ApiOperation(value = "markoffline", notes = "add offline label", response = 
Message.class)
   @RequestMapping(path = "/markoffline", method = RequestMethod.GET)
   public Message updateRouteLabel(HttpServletRequest req) {
+    ModuleUserUtils.getOperationUser(req, "markoffline");
     Map<String, Object> labels = new HashMap<String, Object>();
     logger.info("Prepare to modify the routelabel of entry to offline");
     labels.put(LabelKeyConstant.ROUTE_KEY, LabelValueConstant.OFFLINE_VALUE);
diff --git 
a/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceMetricRestfulApi.java
 
b/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceMetricRestfulApi.java
index a09f55f23..cb34ac43d 100644
--- 
a/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceMetricRestfulApi.java
+++ 
b/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceMetricRestfulApi.java
@@ -116,7 +116,7 @@ public class EntranceMetricRestfulApi {
   @ApiOperation(value = "Status", notes = "get running task number ", response 
= Message.class)
   @RequestMapping(path = "/runningtask", method = RequestMethod.GET)
   public Message status(HttpServletRequest req) {
-
+    ModuleUserUtils.getOperationUser(req, "runningtask");
     EntranceJob[] undoneTasks = entranceServer.getAllUndoneTask("");
     Boolean isCompleted = false;
     if (null == undoneTasks || undoneTasks.length < 1) {
diff --git 
a/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceRestfulApi.java
 
b/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceRestfulApi.java
index d975ef244..33ab1e97a 100644
--- 
a/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceRestfulApi.java
+++ 
b/linkis-computation-governance/linkis-entrance/src/main/java/org/apache/linkis/entrance/restful/EntranceRestfulApi.java
@@ -162,6 +162,7 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
     Job job = entranceServer.getJob(jobId).get();
     JobRequest jobRequest = ((EntranceJob) job).getJobRequest();
     Long jobReqId = jobRequest.getId();
+    ModuleUserUtils.getOperationUser(req, "submit jobReqId: " + jobReqId);
     pushLog(
         LogUtils.generateInfo(
             "You have submitted a new job, script code (after variable 
substitution) is"),
@@ -206,10 +207,12 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
   @Override
   @RequestMapping(path = "/{id}/status", method = RequestMethod.GET)
   public Message status(
+      HttpServletRequest req,
       @PathVariable("id") String id,
       @RequestParam(value = "taskID", required = false) String taskID) {
     Message message = null;
     String realId = ZuulEntranceUtils.parseExecID(id)[3];
+    ModuleUserUtils.getOperationUser(req, "status realId: " + realId);
     Option<Job> job = Option.apply(null);
     try {
       job = entranceServer.getJob(realId);
@@ -243,9 +246,10 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
   })
   @Override
   @RequestMapping(path = "/{id}/progress", method = RequestMethod.GET)
-  public Message progress(@PathVariable("id") String id) {
+  public Message progress(HttpServletRequest req, @PathVariable("id") String 
id) {
     Message message = null;
     String realId = ZuulEntranceUtils.parseExecID(id)[3];
+    ModuleUserUtils.getOperationUser(req, "progress realId: " + realId);
     Option<Job> job = null;
     try {
       job = entranceServer.getJob(realId);
@@ -292,9 +296,10 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
   })
   @Override
   @RequestMapping(path = "/{id}/progressWithResource", method = 
RequestMethod.GET)
-  public Message progressWithResource(@PathVariable("id") String id) {
+  public Message progressWithResource(HttpServletRequest req, 
@PathVariable("id") String id) {
     Message message = null;
     String realId = ZuulEntranceUtils.parseExecID(id)[3];
+    ModuleUserUtils.getOperationUser(req, "progressWithResource realId: " + 
realId);
     Option<Job> job = null;
     try {
       job = entranceServer.getJob(realId);
@@ -401,6 +406,7 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
   @RequestMapping(path = "/{id}/log", method = RequestMethod.GET)
   public Message log(HttpServletRequest req, @PathVariable("id") String id) {
     String realId = ZuulEntranceUtils.parseExecID(id)[3];
+    ModuleUserUtils.getOperationUser(req, "log realId: " + realId);
     Option<Job> job = Option.apply(null);
     Message message = null;
     try {
@@ -509,6 +515,7 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
     JsonNode idNode = jsonNode.get("idList");
     JsonNode taskIDNode = jsonNode.get("taskIDList");
     ArrayList<Long> waitToForceKill = new ArrayList<>();
+    ModuleUserUtils.getOperationUser(req, "killJobs");
     if (idNode.size() != taskIDNode.size()) {
       return Message.error(
           "The length of the ID list does not match the length of the TASKID 
list(id列表的长度与taskId列表的长度不一致)");
@@ -598,9 +605,11 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
   @Override
   @RequestMapping(path = "/{id}/kill", method = RequestMethod.GET)
   public Message kill(
+      HttpServletRequest req,
       @PathVariable("id") String id,
       @RequestParam(value = "taskID", required = false) Long taskID) {
     String realId = ZuulEntranceUtils.parseExecID(id)[3];
+    ModuleUserUtils.getOperationUser(req, "kill realId:" + realId);
     Option<Job> job = Option.apply(null);
     try {
       job = entranceServer.getJob(realId);
@@ -660,8 +669,9 @@ public class EntranceRestfulApi implements 
EntranceRestfulRemote {
   })
   @Override
   @RequestMapping(path = "/{id}/pause", method = RequestMethod.GET)
-  public Message pause(@PathVariable("id") String id) {
+  public Message pause(HttpServletRequest req, @PathVariable("id") String id) {
     String realId = ZuulEntranceUtils.parseExecID(id)[3];
+    ModuleUserUtils.getOperationUser(req, "pause realId:" + realId);
     Option<Job> job = entranceServer.getJob(realId);
     Message message = null;
     if (job.isEmpty()) {
diff --git 
a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/restful/EntranceRestfulRemote.scala
 
b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/restful/EntranceRestfulRemote.scala
index a016e9427..ac4c3648b 100644
--- 
a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/restful/EntranceRestfulRemote.scala
+++ 
b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/restful/EntranceRestfulRemote.scala
@@ -43,18 +43,19 @@ trait EntranceRestfulRemote {
 
   @RequestMapping(value = Array("/entrance/{id}/status"), method = 
Array(RequestMethod.GET))
   def status(
+      req: HttpServletRequest,
       @PathVariable("id") id: String,
       @RequestParam(value = "taskID", required = false) taskID: String
   ): Message
 
   @RequestMapping(value = Array("/entrance/{id}/progress"), method = 
Array(RequestMethod.GET))
-  def progress(@PathVariable("id") id: String): Message
+  def progress(req: HttpServletRequest, @PathVariable("id") id: String): 
Message
 
   @RequestMapping(
     value = Array("/entrance/{id}/progressWithResource"),
     method = Array(RequestMethod.GET)
   )
-  def progressWithResource(@PathVariable("id") id: String): Message
+  def progressWithResource(req: HttpServletRequest, @PathVariable("id") id: 
String): Message
 
   @RequestMapping(value = Array("/entrance/{id}/log"), method = 
Array(RequestMethod.GET))
   def log(req: HttpServletRequest, @PathVariable("id") id: String): Message
@@ -67,9 +68,13 @@ trait EntranceRestfulRemote {
   ): Message
 
   @RequestMapping(value = Array("/entrance/{id}/kill"), method = 
Array(RequestMethod.GET))
-  def kill(@PathVariable("id") id: String, @RequestParam("taskID") taskID: 
java.lang.Long): Message
+  def kill(
+      req: HttpServletRequest,
+      @PathVariable("id") id: String,
+      @RequestParam("taskID") taskID: java.lang.Long
+  ): Message
 
   @RequestMapping(value = Array("/entrance/{id}/pause"), method = 
Array(RequestMethod.GET))
-  def pause(@PathVariable("id") id: String): Message
+  def pause(req: HttpServletRequest, @PathVariable("id") id: String): Message
 
 }
diff --git 
a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java
 
b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java
index 256db9866..fd42a2cd0 100644
--- 
a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java
+++ 
b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/ECResourceInfoRestfulApi.java
@@ -63,9 +63,9 @@ public class ECResourceInfoRestfulApi {
   public Message getECInfo(
       HttpServletRequest req, @RequestParam(value = "ticketid") String 
ticketid)
       throws AMErrorException {
-    String userName = ModuleUserUtils.getOperationUser(req, "getECInfo");
     ECResourceInfoRecord ecResourceInfoRecord =
         ecResourceInfoService.getECResourceInfoRecord(ticketid);
+    String userName = ModuleUserUtils.getOperationUser(req, "getECInfo 
ticketid:") + ticketid;
     if (null != ecResourceInfoRecord
         && (userName.equalsIgnoreCase(ecResourceInfoRecord.getCreateUser())
             || Configuration.isAdmin(userName))) {
@@ -82,9 +82,9 @@ public class ECResourceInfoRestfulApi {
   @RequestMapping(path = "/delete/{ticketid}}", method = RequestMethod.DELETE)
   public Message deleteECInfo(HttpServletRequest req, 
@PathVariable("ticketid") String ticketid)
       throws AMErrorException {
-    String userName = ModuleUserUtils.getOperationUser(req, "deleteECInfo");
     ECResourceInfoRecord ecResourceInfoRecord =
         ecResourceInfoService.getECResourceInfoRecord(ticketid);
+    String userName = ModuleUserUtils.getOperationUser(req, "deleteECInfo 
ticketid:" + ticketid);
     if (null != ecResourceInfoRecord
         && (userName.equalsIgnoreCase(ecResourceInfoRecord.getCreateUser())
             || Configuration.isAdmin(userName))) {
diff --git 
a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EMRestfulApi.java
 
b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EMRestfulApi.java
index f6a9b6cad..787ce885f 100644
--- 
a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EMRestfulApi.java
+++ 
b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EMRestfulApi.java
@@ -153,6 +153,7 @@ public class EMRestfulApi {
       HttpServletRequest req,
       @RequestParam(value = "onlyEditable", required = false) Boolean 
onlyEditable) {
     NodeHealthy[] nodeHealthy = NodeHealthy.values();
+    ModuleUserUtils.getOperationUser(req, "listAllNodeHealthyStatus");
     if (onlyEditable) {
       nodeHealthy =
           new NodeHealthy[] {
diff --git 
a/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlProjectRestful.java
 
b/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlProjectRestful.java
index e11db0da4..652e393c5 100644
--- 
a/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlProjectRestful.java
+++ 
b/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlProjectRestful.java
@@ -44,6 +44,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.io.IOException;
+import java.text.MessageFormat;
 import java.util.*;
 
 import com.fasterxml.jackson.databind.JsonNode;
@@ -138,7 +139,8 @@ public class BmlProjectRestful {
       @RequestParam(name = "projectName") String projectName,
       @RequestParam(name = "file") List<MultipartFile> files)
       throws ErrorException {
-    String username = ModuleUserUtils.getOperationUser(request, 
"uploadShareResource");
+    String username =
+        ModuleUserUtils.getOperationUser(request, "uploadShareResource 
projectName:" + projectName);
     Message message;
     try {
       LOGGER.info(
@@ -308,6 +310,10 @@ public class BmlProjectRestful {
     resp.setHeader("Content-Disposition", "attachment");
     String ip = HttpRequestHelper.getIp(request);
     DownloadModel downloadModel = new DownloadModel(resourceId, version, user, 
ip);
+    ModuleUserUtils.getOperationUser(
+        request,
+        MessageFormat.format(
+            "downloadShareResource,resourceId:{0},version:{1}", resourceId, 
version));
     try {
       String projectName = 
bmlProjectService.getProjectNameByResourceId(resourceId);
       if (!bmlProjectService.checkAccessPriv(projectName, user)) {
@@ -403,6 +409,7 @@ public class BmlProjectRestful {
   public Message getProjectInfo(
       HttpServletRequest request,
       @RequestParam(value = "projectName", required = false) String 
projectName) {
+    ModuleUserUtils.getOperationUser(request, "getProjectInfo");
     return Message.ok("Obtain project information successfully (获取工程信息成功)");
   }
 
@@ -418,9 +425,14 @@ public class BmlProjectRestful {
   @RequestMapping(path = "attachResourceAndProject", method = 
RequestMethod.POST)
   public Message attachResourceAndProject(
       HttpServletRequest request, @RequestBody JsonNode jsonNode) throws 
ErrorException {
-    String username = ModuleUserUtils.getOperationUser(request, 
"attachResourceAndProject");
     String projectName = jsonNode.get(PROJECT_NAME_STR).textValue();
     String resourceId = jsonNode.get("resourceId").textValue();
+    String username =
+        ModuleUserUtils.getOperationUser(
+            request,
+            MessageFormat.format(
+                "attachResourceAndProject,resourceId:{0},projectName:{1}",
+                resourceId, projectName));
     LOGGER.info("begin to attach {}  and {}", projectName, username);
     bmlProjectService.attach(projectName, resourceId);
     return Message.ok("attach resource and project ok");
@@ -439,8 +451,9 @@ public class BmlProjectRestful {
   @RequestMapping(path = "updateProjectUsers", method = RequestMethod.POST)
   public Message updateProjectUsers(HttpServletRequest request, @RequestBody 
JsonNode jsonNode)
       throws ErrorException {
-    String username = ModuleUserUtils.getOperationUser(request, 
"updateProjectUsers");
     String projectName = jsonNode.get("projectName").textValue();
+    String username =
+        ModuleUserUtils.getOperationUser(request, 
"updateProjectUsers,projectName:" + projectName);
     LOGGER.info("{} begins to update project users for {}", username, 
projectName);
     List<String> editUsers = new ArrayList<>();
     List<String> accessUsers = new ArrayList<>();
diff --git 
a/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlRestfulApi.java
 
b/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlRestfulApi.java
index 99682d293..8125d706d 100644
--- 
a/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/BmlRestfulApi.java
@@ -118,7 +118,7 @@ public class BmlRestfulApi {
           resourceId);
       throw new BmlServerParaErrorException(SUBMITTED_INVALID.getErrorDesc());
     }
-
+    ModuleUserUtils.getOperationUser(request, "getVersions,resourceId:" + 
resourceId);
     Integer current = 0;
     Integer size = 0;
     if (StringUtils.isEmpty(currentPage) || 
!StringUtils.isNumeric(currentPage)) {
@@ -203,7 +203,7 @@ public class BmlRestfulApi {
       // 默认系统是wtss
       system = Constant.DEFAULT_SYSTEM;
     }
-
+    ModuleUserUtils.getOperationUser(request, "getResources,system:" + system);
     Integer current = 0;
     Integer size = 0;
     if (StringUtils.isEmpty(currentPage) || 
!StringUtils.isNumeric(currentPage)) {
@@ -296,6 +296,9 @@ public class BmlRestfulApi {
 
     String resourceId = jsonNode.get("resourceId").textValue();
     String version = jsonNode.get("version").textValue();
+    ModuleUserUtils.getOperationUser(
+        request,
+        MessageFormat.format("deleteVersion,resourceId:{0},version:{1}", 
resourceId, version));
     // 检查资源和版本是否存在
     if (!resourceService.checkResourceId(resourceId)
         || !versionService.checkVersion(resourceId, version)
@@ -384,7 +387,7 @@ public class BmlRestfulApi {
               + resourceId
               + "为空,非法或者已被删除!)");
     }
-
+    ModuleUserUtils.getOperationUser(request, "deleteResource,resourceId:" + 
resourceId);
     Message message = null;
     ResourceTask resourceTask =
         taskService.createDeleteResourceTask(resourceId, user, 
HttpRequestHelper.getIp(request));
@@ -446,7 +449,7 @@ public class BmlRestfulApi {
   @RequestMapping(path = "deleteResources", method = RequestMethod.POST)
   public Message deleteResources(HttpServletRequest request, @RequestBody 
JsonNode jsonNode)
       throws IOException, ErrorException {
-    String user = RestfulUtils.getUserName(request);
+    String user = ModuleUserUtils.getOperationUser(request, "deleteResources");
     List<String> resourceIds = new ArrayList<>();
 
     if (null == jsonNode.get("resourceIds")) {
@@ -550,6 +553,8 @@ public class BmlRestfulApi {
     if (StringUtils.isBlank(version)) {
       version = versionService.getNewestVersion(resourceId);
     }
+    ModuleUserUtils.getOperationUser(
+        request, MessageFormat.format("download,resourceId:{0},version:{1}", 
resourceId, version));
     // check version
     if (!versionService.checkVersion(resourceId, version)) {
       throw new BmlQueryFailException(
@@ -656,7 +661,7 @@ public class BmlRestfulApi {
       @RequestParam(name = "maxVersion", required = false) Integer maxVersion,
       @RequestParam(name = "file") List<MultipartFile> files)
       throws ErrorException {
-    String user = RestfulUtils.getUserName(req);
+    String user = ModuleUserUtils.getOperationUser(req, "uploadResource");
     Message message;
     try {
       logger.info("User {} starts uploading resources (用户 {} 开始上传资源)", user, 
user);
@@ -715,12 +720,13 @@ public class BmlRestfulApi {
       @RequestParam("resourceId") String resourceId,
       @RequestParam("file") MultipartFile file)
       throws Exception {
-    String user = RestfulUtils.getUserName(request);
     if (StringUtils.isEmpty(resourceId) || 
!resourceService.checkResourceId(resourceId)) {
       logger.error("error resourceId  is {} ", resourceId);
       throw new BmlServerParaErrorException(
           "resourceId: " + resourceId + " is Null, illegal, or deleted!");
     }
+    String user =
+        ModuleUserUtils.getOperationUser(request, "updateVersion,resourceId:" 
+ resourceId);
     if (StringUtils.isEmpty(versionService.getNewestVersion(resourceId))) {
       logger.error(
           "If the material has not been uploaded or has been deleted, please 
call the upload interface first .(resourceId:{} 之前未上传物料,或物料已被删除,请先调用上传接口.)",
@@ -773,12 +779,10 @@ public class BmlRestfulApi {
       @RequestParam(value = "resourceId", required = false) String resourceId,
       HttpServletRequest request)
       throws ErrorException {
-    String user = RestfulUtils.getUserName(request);
-
     if (StringUtils.isEmpty(resourceId) || 
!resourceService.checkResourceId(resourceId)) {
       throw new 
BmlServerParaErrorException(PARAMETER_IS_ILLEGAL.getErrorDesc());
     }
-
+    String user = ModuleUserUtils.getOperationUser(request, 
"getBasic,resourceId:" + resourceId);
     Message message = null;
     try {
       Resource resource = resourceService.getResource(resourceId);
@@ -853,6 +857,10 @@ public class BmlRestfulApi {
     String resourceId = jsonNode.get("resourceId").textValue();
     String oldOwner = jsonNode.get("oldOwner").textValue();
     String newOwner = jsonNode.get("newOwner").textValue();
+    ModuleUserUtils.getOperationUser(
+        request,
+        MessageFormat.format(
+            "download,resourceId:{0},oldOwner:{1},newOwner:{2}", resourceId, 
oldOwner, newOwner));
     resourceService.changeOwnerByResourceId(resourceId, oldOwner, newOwner);
     return Message.ok("更新owner成功!");
   }
@@ -869,9 +877,11 @@ public class BmlRestfulApi {
   @RequestMapping(path = "copyResourceToAnotherUser", method = 
RequestMethod.POST)
   public Message copyResourceToAnotherUser(
       HttpServletRequest request, @RequestBody JsonNode jsonNode) {
-    String username = ModuleUserUtils.getOperationUser(request, 
"copyResourceToAnotherUser");
     String resourceId = jsonNode.get("resourceId").textValue();
     String anotherUser = jsonNode.get("anotherUser").textValue();
+    String username =
+        ModuleUserUtils.getOperationUser(
+            request, "copyResourceToAnotherUser,resourceId:" + resourceId);
     Message message = null;
     try {
       logger.info("用户 {} 开始 copy bml resource: {}", username, resourceId);
@@ -905,9 +915,13 @@ public class BmlRestfulApi {
   @ApiOperationSupport(ignoreParameters = {"jsonNode"})
   @RequestMapping(path = "rollbackVersion", method = RequestMethod.POST)
   public Message rollbackVersion(HttpServletRequest request, @RequestBody 
JsonNode jsonNode) {
-    String username = ModuleUserUtils.getOperationUser(request, 
"rollbackVersion");
     String resourceId = jsonNode.get("resourceId").textValue();
     String rollbackVersion = jsonNode.get("version").textValue();
+    String username =
+        ModuleUserUtils.getOperationUser(
+            request,
+            MessageFormat.format(
+                "download,resourceId:{0},rollbackVersion:{1}", resourceId, 
rollbackVersion));
     Message message = null;
     try {
       logger.info(
diff --git 
a/linkis-public-enhancements/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java
 
b/linkis-public-enhancements/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java
index f1ac09fba..76e25c0e1 100644
--- 
a/linkis-public-enhancements/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java
@@ -41,6 +41,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 
 import java.io.IOException;
+import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -94,6 +95,10 @@ public class ConfigurationRestfulApi {
         || StringUtils.isBlank(token)) {
       throw new ConfigurationException(PARAMS_CANNOT_BE_EMPTY.getErrorDesc());
     }
+    ModuleUserUtils.getOperationUser(
+        req,
+        MessageFormat.format(
+            "addKeyForEngine,engineType:{0},version:{1},token:{2}", 
engineType, version, token));
     // todo 检验token
     if (!token.equals(ConfigurationConfiguration.COPYKEYTOKEN)) {
       throw new ConfigurationException(TOKEN_IS_ERROR.getErrorDesc());
@@ -120,12 +125,16 @@ public class ConfigurationRestfulApi {
       @RequestParam(value = "version", required = false) String version,
       @RequestParam(value = "creator", required = false) String creator)
       throws ConfigurationException {
-    String username = ModuleUserUtils.getOperationUser(req, 
"getFullTreesByAppName");
     if (creator != null && (creator.equals("通用设置") || creator.equals("全局设置"))) 
{
       engineType = "*";
       version = "*";
       creator = "*";
     }
+    String username =
+        ModuleUserUtils.getOperationUser(
+            req,
+            MessageFormat.format(
+                "ConfigurationException,engineType:{0},version:{1}", 
engineType, version));
     List labelList =
         LabelEntityParser.generateUserCreatorEngineTypeLabelList(
             username, creator, engineType, version);
diff --git 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextHistoryRestfulApi.java
 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextHistoryRestfulApi.java
index a61c0a3f4..a9ef54024 100644
--- 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextHistoryRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextHistoryRestfulApi.java
@@ -25,6 +25,7 @@ import org.apache.linkis.cs.server.enumeration.ServiceType;
 import org.apache.linkis.cs.server.scheduler.CsScheduler;
 import org.apache.linkis.cs.server.scheduler.HttpAnswerJob;
 import org.apache.linkis.server.Message;
+import org.apache.linkis.server.utils.ModuleUserUtils;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
@@ -72,6 +73,7 @@ public class ContextHistoryRestfulApi implements 
CsRestfulParent {
     if (StringUtils.isEmpty(contextID.getContextId())) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "createHistory,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.CREATE, 
contextID, history);
     return generateResponse(answerJob, "");
   }
@@ -94,6 +96,7 @@ public class ContextHistoryRestfulApi implements 
CsRestfulParent {
     if (StringUtils.isEmpty(contextID.getContextId())) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "removeHistory,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.REMOVE, 
contextID, history);
     return generateResponse(answerJob, "");
   }
@@ -111,6 +114,7 @@ public class ContextHistoryRestfulApi implements 
CsRestfulParent {
     if (StringUtils.isEmpty(contextID.getContextId())) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "getHistories,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.GET, contextID);
     Message message = generateResponse(answerJob, "contextHistory");
     return message;
@@ -135,6 +139,7 @@ public class ContextHistoryRestfulApi implements 
CsRestfulParent {
     if (StringUtils.isEmpty(contextID.getContextId())) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "getHistory,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.GET, contextID, 
source);
     Message message = generateResponse(answerJob, "contextHistory");
     return message;
@@ -155,6 +160,7 @@ public class ContextHistoryRestfulApi implements 
CsRestfulParent {
     if (StringUtils.isEmpty(contextID.getContextId())) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "searchHistory,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.SEARCH, 
contextID, keywords);
     Message message = generateResponse(answerJob, "contextHistory");
     return message;
diff --git 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextIDRestfulApi.java
 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextIDRestfulApi.java
index 64fb4979a..fd7e83a6b 100644
--- 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextIDRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextIDRestfulApi.java
@@ -72,6 +72,10 @@ public class ContextIDRestfulApi implements CsRestfulParent {
   public Message createContextID(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, ClassNotFoundException, IOException, 
CSErrorException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "createContextID,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.CREATE, 
contextID);
     return generateResponse(answerJob, "contextId");
   }
@@ -85,6 +89,7 @@ public class ContextIDRestfulApi implements CsRestfulParent {
     if (StringUtils.isEmpty(id)) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "getContextID,contextID:" + id);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.GET, id);
     Message message = generateResponse(answerJob, "contextID");
     return message;
@@ -100,6 +105,7 @@ public class ContextIDRestfulApi implements CsRestfulParent 
{
     if (StringUtils.isEmpty(contextID.getContextId())) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "updateContextID,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.UPDATE, 
contextID);
     return generateResponse(answerJob, "");
   }
@@ -114,6 +120,10 @@ public class ContextIDRestfulApi implements 
CsRestfulParent {
       throw new CSErrorException(97000, ContextHTTPConstant.CONTEXT_ID_STR + " 
cannot be empty");
     }
     String id = jsonNode.get(ContextHTTPConstant.CONTEXT_ID_STR).textValue();
+    if (StringUtils.isEmpty(id)) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "resetContextID,contextID:" + id);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.RESET, id);
     return generateResponse(answerJob, "");
   }
@@ -124,10 +134,11 @@ public class ContextIDRestfulApi implements 
CsRestfulParent {
   @RequestMapping(path = "removeContextID", method = RequestMethod.POST)
   public Message removeContextID(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, CSErrorException {
-    String id = jsonNode.get("contextId").textValue();
+    String id = jsonNode.get(ContextHTTPConstant.CONTEXT_ID_STR).textValue();
     if (StringUtils.isEmpty(id)) {
       throw new CSErrorException(97000, "contxtId cannot be empty");
     }
+    ModuleUserUtils.getOperationUser(req, "removeContextID,contextID:" + id);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.REMOVE, id);
     return generateResponse(answerJob, "");
   }
@@ -158,7 +169,7 @@ public class ContextIDRestfulApi implements CsRestfulParent 
{
       @RequestParam(value = "pageNow", required = false) Integer paramPageNow,
       @RequestParam(value = "pageSize", required = false) Integer 
paramPageSize)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
-    String username = ModuleUserUtils.getOperationUser(req);
+    String username = ModuleUserUtils.getOperationUser(req, 
"searchContextIDByTime");
     if (!Configuration.isAdmin(username)) {
       throw new CSErrorException(97018, "Only station admins are allowed.");
     }
diff --git 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextListenerRestfulApi.java
 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextListenerRestfulApi.java
index 2546083c3..7bfc81379 100644
--- 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextListenerRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextListenerRestfulApi.java
@@ -28,6 +28,9 @@ import org.apache.linkis.cs.server.enumeration.ServiceType;
 import org.apache.linkis.cs.server.scheduler.CsScheduler;
 import org.apache.linkis.cs.server.scheduler.HttpAnswerJob;
 import org.apache.linkis.server.Message;
+import org.apache.linkis.server.utils.ModuleUserUtils;
+
+import org.apache.commons.lang3.StringUtils;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -61,6 +64,10 @@ public class ContextListenerRestfulApi implements 
CsRestfulParent {
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     String source = jsonNode.get("source").textValue();
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "onBindIDListener,contextID:" + 
contextID.getContextId());
     ContextIDListenerDomain listener = new CommonContextIDListenerDomain();
     listener.setSource(source);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.BIND, 
contextID, listener);
@@ -77,6 +84,11 @@ public class ContextListenerRestfulApi implements 
CsRestfulParent {
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     String source = jsonNode.get("source").textValue();
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(
+        req, "onBindKeyListener,contextID:" + contextID.getContextId());
     ContextKey contextKey = getContextKeyFromJsonNode(jsonNode);
     CommonContextKeyListenerDomain listener = new 
CommonContextKeyListenerDomain();
     listener.setSource(source);
@@ -90,6 +102,7 @@ public class ContextListenerRestfulApi implements 
CsRestfulParent {
   @RequestMapping(path = "heartbeat", method = RequestMethod.POST)
   public Message heartbeat(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, IOException, CSErrorException {
+    ModuleUserUtils.getOperationUser(req, "heartbeat");
     String source = jsonNode.get("source").textValue();
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.HEARTBEAT, 
source);
     return generateResponse(answerJob, "ContextKeyValueBean");
diff --git 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
index 9399e5592..ff6b0218a 100644
--- 
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
@@ -33,6 +33,8 @@ import org.apache.linkis.cs.server.scheduler.HttpAnswerJob;
 import org.apache.linkis.server.Message;
 import org.apache.linkis.server.utils.ModuleUserUtils;
 
+import org.apache.commons.lang3.StringUtils;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -84,6 +86,10 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message getContextValue(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "getContextValue,contextID:" + 
contextID.getContextId());
     ContextKey contextKey = getContextKeyFromJsonNode(jsonNode);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.GET, contextID, 
contextKey);
     Message message = generateResponse(answerJob, "contextValue");
@@ -103,6 +109,11 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message searchContextValue(HttpServletRequest req, @RequestBody 
JsonNode jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(
+        req, "searchContextValue,contextID:" + contextID.getContextId());
     JsonNode condition = jsonNode.get("condition");
     Map<Object, Object> conditionMap =
         objectMapper.convertValue(condition, new TypeReference<Map<Object, 
Object>>() {});
@@ -121,6 +132,10 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message setValueByKey(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws CSErrorException, IOException, ClassNotFoundException, 
InterruptedException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "setValueByKey,contextID:" + 
contextID.getContextId());
     ContextKey contextKey = getContextKeyFromJsonNode(jsonNode);
     ContextValue contextValue = getContextValueFromJsonNode(jsonNode);
     HttpAnswerJob answerJob =
@@ -138,6 +153,10 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message setValue(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "setValue,contextID:" + 
contextID.getContextId());
     ContextKeyValue contextKeyValue = getContextKeyValueFromJsonNode(jsonNode);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.SET, contextID, 
contextKeyValue);
     return generateResponse(answerJob, "");
@@ -153,6 +172,10 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message resetValue(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "resetValue,contextID:" + 
contextID.getContextId());
     ContextKey contextKey = getContextKeyFromJsonNode(jsonNode);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.RESET, 
contextID, contextKey);
     return generateResponse(answerJob, "");
@@ -168,6 +191,10 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message removeValue(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "removeValue,contextID:" + 
contextID.getContextId());
     ContextKey contextKey = getContextKeyFromJsonNode(jsonNode);
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.REMOVE, 
contextID, contextKey);
     return generateResponse(answerJob, "");
@@ -183,6 +210,10 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message removeAllValue(HttpServletRequest req, @RequestBody JsonNode 
jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(req, "removeAllValue,contextID:" + 
contextID.getContextId());
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.REMOVEALL, 
contextID);
     return generateResponse(answerJob, "");
   }
@@ -201,6 +232,11 @@ public class ContextRestfulApi implements CsRestfulParent {
       HttpServletRequest req, @RequestBody JsonNode jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(
+        req, "removeAllValueByKeyPrefixAndContextType,contextID:" + 
contextID.getContextId());
     String contextType = 
jsonNode.get(ContextHTTPConstant.CONTEXT_KEY_TYPE_STR).textValue();
     String keyPrefix = 
jsonNode.get(ContextHTTPConstant.CONTEXT_KEY_PREFIX_STR).textValue();
     HttpAnswerJob answerJob =
@@ -221,6 +257,11 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message removeAllValueByKeyPrefix(HttpServletRequest req, 
@RequestBody JsonNode jsonNode)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
     ContextID contextID = getContextIDFromJsonNode(jsonNode);
+    if (StringUtils.isEmpty(contextID.getContextId())) {
+      throw new CSErrorException(97000, "contxtId cannot be empty");
+    }
+    ModuleUserUtils.getOperationUser(
+        req, "removeAllValueByKeyPrefix,contextID:" + 
contextID.getContextId());
     String keyPrefix = 
jsonNode.get(ContextHTTPConstant.CONTEXT_KEY_PREFIX_STR).textValue();
     HttpAnswerJob answerJob = submitRestJob(req, ServiceMethod.REMOVEALL, 
contextID, keyPrefix);
     return generateResponse(answerJob, "");
@@ -242,6 +283,7 @@ public class ContextRestfulApi implements CsRestfulParent {
         || (jsonNode.get("idList").isArray() && ((ArrayNode) 
jsonNode.get("idList")).size() == 0)) {
       throw new CSErrorException(97000, "idList cannot be empty.");
     }
+    ModuleUserUtils.getOperationUser(req, "clearAllContextByID");
     ArrayNode idArray = (ArrayNode) jsonNode.get("idList");
     logger.info("clearAllContextByID idList size : {}", idArray.size());
     List<String> idList = new ArrayList<>(idArray.size());
@@ -270,7 +312,7 @@ public class ContextRestfulApi implements CsRestfulParent {
   public Message clearAllContextByID(
       HttpServletRequest req, @RequestBody Map<String, Object> bodyMap)
       throws InterruptedException, CSErrorException, IOException, 
ClassNotFoundException {
-    String username = ModuleUserUtils.getOperationUser(req);
+    String username = ModuleUserUtils.getOperationUser(req, 
"clearAllContextByTime");
     if (!Configuration.isAdmin(username)) {
       throw new CSErrorException(97018, "Only station admins are allowed.");
     }
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
index 5c2f7b273..872038069 100644
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
@@ -253,7 +253,8 @@ public class DataSourceAdminRestfulApi {
   public Message removeEnvEntity(@PathVariable("envId") Long envId, 
HttpServletRequest request) {
     return RestfulApiHelper.doAndResponse(
         () -> {
-          String userName = ModuleUserUtils.getOperationUser(request, 
"removeEnvEntity");
+          String userName =
+              ModuleUserUtils.getOperationUser(request, 
"removeEnvEntity,envId:" + envId);
           if (!RestfulApiHelper.isAdminUser(userName)) {
             return Message.error("User '" + userName + "' is not admin 
user[非管理员用户]");
           }
@@ -280,7 +281,8 @@ public class DataSourceAdminRestfulApi {
       throws ErrorException {
     return RestfulApiHelper.doAndResponse(
         () -> {
-          String userName = ModuleUserUtils.getOperationUser(request, 
"updateJsonEnv");
+          String userName =
+              ModuleUserUtils.getOperationUser(request, "updateJsonEnv,envId:" 
+ envId);
           if (!RestfulApiHelper.isAdminUser(userName)) {
             return Message.error("User '" + userName + "' is not admin 
user[非管理员用户]");
           }
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestful.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestful.java
index bf5ed7247..6a3189faf 100644
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestful.java
+++ 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestful.java
@@ -70,7 +70,7 @@ public class MetadataQueryRestful {
         return Message.error("'system' is invalid[系统名错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
-        return Message.error("'dataSourceId' is invalid[数据源错误]");
+        return Message.error("'dataSourceName' is invalid[数据源错误]");
       }
       String userName =
           ModuleUserUtils.getOperationUser(
@@ -113,7 +113,7 @@ public class MetadataQueryRestful {
         return Message.error("'system' is invalid[系统名错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
-        return Message.error("'dataSourceId' is invalid[数据源错误]");
+        return Message.error("'dataSourceName' is invalid[数据源错误]");
       }
       String userName =
           ModuleUserUtils.getOperationUser(
@@ -152,7 +152,7 @@ public class MetadataQueryRestful {
         return Message.error("'system' is invalid[系统名错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
-        return Message.error("'dataSourceId' is invalid[数据源错误]");
+        return Message.error("'dataSourceName' is invalid[数据源错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(database).matches()) {
         return Message.error("'database' is invalid[数据库名称错误]");
@@ -204,7 +204,7 @@ public class MetadataQueryRestful {
         return Message.error("'table' is invalid[表名错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
-        return Message.error("'dataSourceId' is invalid[数据源错误]");
+        return Message.error("'dataSourceName' is invalid[数据源错误]");
       }
       String userName =
           ModuleUserUtils.getOperationUser(
@@ -258,7 +258,7 @@ public class MetadataQueryRestful {
         return Message.error("'table' is invalid[表名错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
-        return Message.error("'dataSourceId' is invalid[数据源错误]");
+        return Message.error("'dataSourceName' is invalid[数据源错误]");
       }
 
       String userName =
@@ -317,7 +317,7 @@ public class MetadataQueryRestful {
         return Message.error("'table' is invalid[表名错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
-        return Message.error("'dataSourceId' is invalid[数据源错误]");
+        return Message.error("'dataSourceName' is invalid[数据源错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(partition).matches()) {
         return Message.error("'partition' is invalid[partition错误]");
@@ -375,7 +375,7 @@ public class MetadataQueryRestful {
         return Message.error("'table' is invalid[表名错误]");
       }
       if (!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
-        return Message.error("'dataSourceId' is invalid[数据源错误]");
+        return Message.error("'dataSourceName' is invalid[数据源错误]");
       }
 
       String userName =
diff --git 
a/linkis-public-enhancements/linkis-error-code/linkis-error-code-server/src/main/java/org/apache/linkis/errorcode/server/restful/LinkisErrorCodeRestful.java
 
b/linkis-public-enhancements/linkis-error-code/linkis-error-code-server/src/main/java/org/apache/linkis/errorcode/server/restful/LinkisErrorCodeRestful.java
index 9f86ace36..4eab5aab2 100644
--- 
a/linkis-public-enhancements/linkis-error-code/linkis-error-code-server/src/main/java/org/apache/linkis/errorcode/server/restful/LinkisErrorCodeRestful.java
+++ 
b/linkis-public-enhancements/linkis-error-code/linkis-error-code-server/src/main/java/org/apache/linkis/errorcode/server/restful/LinkisErrorCodeRestful.java
@@ -21,6 +21,7 @@ import org.apache.linkis.errorcode.common.CommonConf;
 import org.apache.linkis.errorcode.common.LinkisErrorCode;
 import org.apache.linkis.errorcode.server.service.LinkisErrorCodeService;
 import org.apache.linkis.server.Message;
+import org.apache.linkis.server.utils.ModuleUserUtils;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -44,6 +45,7 @@ public class LinkisErrorCodeRestful {
   @ApiOperation(value = "getErrorCodes", notes = "get error codes", response = 
Message.class)
   @RequestMapping(path = CommonConf.GET_ERRORCODE_URL, method = 
RequestMethod.GET)
   public Message getErrorCodes(HttpServletRequest request) {
+    ModuleUserUtils.getOperationUser(request, "getErrorCodes ");
     List<LinkisErrorCode> errorCodes = 
linkisErrorCodeService.getAllErrorCodes();
     Message message = Message.ok();
     message.data("errorCodes", errorCodes);
diff --git 
a/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java
 
b/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java
index a46ffc5ee..2cfabb9d1 100644
--- 
a/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java
+++ 
b/linkis-public-enhancements/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java
@@ -73,7 +73,7 @@ public class InstanceRestful {
       response = Message.class)
   @RequestMapping(path = "/allInstance", method = RequestMethod.GET)
   public Message listAllInstanceWithLabel(HttpServletRequest req) throws 
Exception {
-    String userName = ModuleUserUtils.getOperationUser(req);
+    String userName = ModuleUserUtils.getOperationUser(req, 
"listAllInstanceWithLabel");
     if (!Configuration.isAdmin(userName)) {
       throw new InstanceErrorException(
           String.format(
@@ -103,7 +103,7 @@ public class InstanceRestful {
   @RequestMapping(path = "/instanceLabel", method = RequestMethod.PUT)
   public Message upDateInstanceLabel(HttpServletRequest req, @RequestBody 
JsonNode jsonNode)
       throws Exception {
-    String userName = ModuleUserUtils.getOperationUser(req);
+    String userName = ModuleUserUtils.getOperationUser(req, 
"upDateInstanceLabel");
     if (!Configuration.isAdmin(userName)) {
       throw new InstanceErrorException(
           String.format(
@@ -153,6 +153,7 @@ public class InstanceRestful {
       response = Message.class)
   @RequestMapping(path = "/modifiableLabelKey", method = RequestMethod.GET)
   public Message listAllModifiableLabelKey(HttpServletRequest req) {
+    ModuleUserUtils.getOperationUser(req, "upDateInstanceLabel");
     Set<String> keyList = LabelUtils.listAllUserModifiableLabel();
     return Message.ok().data("keyList", keyList);
   }
@@ -161,6 +162,7 @@ public class InstanceRestful {
   @RequestMapping(path = "/eurekaURL", method = RequestMethod.GET)
   public Message getEurekaURL(HttpServletRequest request) throws Exception {
     String eurekaURL = insLabelService.getEurekaURL();
+    ModuleUserUtils.getOperationUser(request, "upDateInstanceLabel");
     return Message.ok().data("url", eurekaURL);
   }
 }
diff --git 
a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java
 
b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java
index 448672896..08c595095 100644
--- 
a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java
@@ -39,6 +39,7 @@ import javax.servlet.http.HttpServletRequest;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.text.MessageFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -76,7 +77,11 @@ public class BMLFsRestfulApi {
       @RequestParam(value = "projectName", required = false) String 
projectName,
       @RequestParam(value = "fileName", defaultValue = "test.sql") String 
fileName)
       throws IOException, WorkSpaceException {
-    String userName = ModuleUserUtils.getOperationUser(req, 
"openScriptFromBML");
+    String userName =
+        ModuleUserUtils.getOperationUser(
+            req,
+            MessageFormat.format(
+                "openScriptFromBML,resourceId:{0},fileName:{1}", resourceId, 
fileName));
     Map<String, Object> query = bmlHelper.query(userName, resourceId, version);
     InputStream inputStream = (InputStream) query.get("stream");
     try (FileSource fileSource = FileSource$.MODULE$.create(new 
FsPath(fileName), inputStream)) {
@@ -117,7 +122,11 @@ public class BMLFsRestfulApi {
       @RequestParam(value = "creator", required = false) String creator,
       @RequestParam(value = "fileName", defaultValue = "test.sql") String 
fileName)
       throws IOException, WorkSpaceException {
-    String userName = ModuleUserUtils.getOperationUser(req, 
"openScriptFromBML");
+    String userName =
+        ModuleUserUtils.getOperationUser(
+            req,
+            MessageFormat.format(
+                "openScriptFromProductBML,resourceId:{0},fileName:{1}", 
resourceId, fileName));
     if (!StringUtils.isEmpty(creator)) {
       userName = creator;
     }
@@ -165,7 +174,11 @@ public class BMLFsRestfulApi {
     String resourceId = (String) json.get("resourceId");
     String creator = (String) json.get("creator");
     String projectName = (String) json.get("projectName");
-    String userName = ModuleUserUtils.getOperationUser(req, "saveScriptToBML" 
+ fileName);
+    String userName =
+        ModuleUserUtils.getOperationUser(
+            req,
+            MessageFormat.format(
+                "saveScriptToBML,resourceId:{0},fileName:{1}", resourceId, 
fileName));
     ScriptFsWriter writer =
         StorageScriptFsWriter.getScriptFsWriter(
             new FsPath(fileName), Consts.UTF_8.toString(), null);
diff --git 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFRestfulApi.java
 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFRestfulApi.java
index 81f24565d..a6f849e8f 100644
--- 
a/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFRestfulApi.java
+++ 
b/linkis-public-enhancements/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFRestfulApi.java
@@ -43,6 +43,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.io.*;
+import java.text.MessageFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -418,7 +419,7 @@ public class UDFRestfulApi {
   public Message Authenticate(HttpServletRequest req) {
     Message message = null;
     try {
-      String userName = ModuleUserUtils.getOperationUser(req);
+      String userName = ModuleUserUtils.getOperationUser(req, "Authenticate");
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("UserName is Empty!");
       }
@@ -486,7 +487,7 @@ public class UDFRestfulApi {
   public Message shareUDF(HttpServletRequest req, @RequestBody JsonNode json) 
throws Throwable {
     Message message = null;
     try {
-      String userName = ModuleUserUtils.getOperationUser(req);
+      String userName = ModuleUserUtils.getOperationUser(req, "shareUDF");
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("UserName is Empty!");
       }
@@ -540,7 +541,7 @@ public class UDFRestfulApi {
   public Message getSharedUsers(HttpServletRequest req, @RequestBody JsonNode 
json) {
     Message message = null;
     try {
-      String userName = ModuleUserUtils.getOperationUser(req);
+      String userName = ModuleUserUtils.getOperationUser(req, 
"getSharedUsers");
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("UserName is Empty!");
       }
@@ -637,7 +638,7 @@ public class UDFRestfulApi {
   public Message publishUDF(HttpServletRequest req, @RequestBody JsonNode 
json) {
     Message message = null;
     try {
-      String userName = ModuleUserUtils.getOperationUser(req);
+      String userName = ModuleUserUtils.getOperationUser(req, "publishUDF");
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("username is empty!");
       }
@@ -676,12 +677,14 @@ public class UDFRestfulApi {
   public Message rollbackUDF(HttpServletRequest req, @RequestBody JsonNode 
json) {
     Message message = null;
     try {
-      String userName = ModuleUserUtils.getOperationUser(req);
+      long udfId = json.get("udfId").longValue();
+      String version = json.get("version").textValue();
+      String userName =
+          ModuleUserUtils.getOperationUser(
+              req, MessageFormat.format("rollbackUDF,udfId:{0},version:{1}", 
udfId, version));
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("username is empty!");
       }
-      long udfId = json.get("udfId").longValue();
-      String version = json.get("version").textValue();
       verifyOperationUser(userName, udfId);
       udfService.rollbackUDF(udfId, version, userName);
       message = Message.ok();
@@ -700,7 +703,7 @@ public class UDFRestfulApi {
   public Message versionList(HttpServletRequest req, @RequestParam("udfId") 
long udfId) {
     Message message = null;
     try {
-      String userName = ModuleUserUtils.getOperationUser(req);
+      String userName = ModuleUserUtils.getOperationUser(req, 
"versionList,udfId:" + udfId);
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("username is empty!");
       }
@@ -749,7 +752,7 @@ public class UDFRestfulApi {
   public Message managerPages(HttpServletRequest req, @RequestBody JsonNode 
jsonNode) {
     Message message = null;
     try {
-      String userName = ModuleUserUtils.getOperationUser(req);
+      String userName = ModuleUserUtils.getOperationUser(req, "managerPages");
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("username is empty!");
       }
@@ -798,7 +801,9 @@ public class UDFRestfulApi {
 
       long udfId = json.get("udfId").longValue();
       String version = json.get("version").textValue();
-      String userName = ModuleUserUtils.getOperationUser(req, "downloadUdf " + 
udfId);
+      String userName =
+          ModuleUserUtils.getOperationUser(
+              req, MessageFormat.format("downloadUdf,udfId:{0},version:{1}", 
udfId, version));
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("username is empty!");
       }
@@ -840,7 +845,9 @@ public class UDFRestfulApi {
 
       long udfId = json.get("udfId").longValue();
       String version = json.get("version").textValue();
-      String userName = ModuleUserUtils.getOperationUser(req, "downloadUdf " + 
udfId);
+      String userName =
+          ModuleUserUtils.getOperationUser(
+              req, MessageFormat.format("downloadUdf,udfId:{0},version:{1}", 
udfId, version));
       if (StringUtils.isEmpty(userName)) {
         throw new UDFException("username is empty!");
       }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to