You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by al...@apache.org on 2022/03/04 06:36:36 UTC
[incubator-linkis] 09/13: update restful supports proxy user mode #1590
This is an automated email from the ASF dual-hosted git repository.
alexkun pushed a commit to branch dev-1.1.1
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
commit 7db4f9524c763622500a5a3601cc60bcc41930e8
Author: peacewong <wp...@gmail.com>
AuthorDate: Thu Mar 3 18:43:05 2022 +0800
update restful supports proxy user mode #1590
---
.../linkis/server/utils/ModuleUserUtils.java | 9 +--
.../linkis/storage/fs/impl/LocalFileSystem.java | 1 -
.../entrance/restful/EntranceRestfulApi.java | 6 +-
.../linkis/entrance/EntranceWebSocketService.scala | 2 +-
.../interceptor/impl/LabelCheckInterceptor.scala | 5 --
.../entrance/parser/CommonEntranceParser.scala | 4 +-
.../linkis/manager/am/restful/EMRestfulApi.java | 13 ++--
.../manager/am/restful/EngineRestfulApi.java | 20 +++---
.../resourcemanager/restful/RMMonitorRest.scala | 9 +--
.../linkis/bml/restful/BmlProjectRestful.java | 15 +++--
.../apache/linkis/bml/restful/BmlRestfulApi.java | 7 +--
.../apache/linkis/bml/restful/RestfulUtils.java | 4 +-
.../linkis/cs/server/restful/CsRestfulParent.java | 4 +-
.../apache/linkis/cs/server/CsRestfulParent.java | 4 +-
.../metadata/restful/api/DataSourceRestfulApi.java | 14 ++---
.../metadata/restful/api/MdqTableRestfulApi.java | 16 ++---
.../restful/api/ConfigurationRestfulApi.java | 14 ++---
.../instance/label/restful/InstanceRestful.java | 5 +-
.../jobhistory/restful/api/QueryRestfulApi.java | 8 +--
.../filesystem/restful/api/BMLFsRestfulApi.java | 9 +--
.../filesystem/restful/api/FsRestfulApi.java | 39 +++++++-----
.../filesystem/validator/PathValidator.scala | 5 +-
.../java/org/apache/linkis/udf/api/UDFApi.java | 73 ++++++++++++----------
.../variable/restful/api/VariableRestfulApi.java | 6 +-
24 files changed, 154 insertions(+), 138 deletions(-)
diff --git a/linkis-commons/linkis-module/src/main/java/org/apache/linkis/server/utils/ModuleUserUtils.java b/linkis-commons/linkis-module/src/main/java/org/apache/linkis/server/utils/ModuleUserUtils.java
index 874db6b..198cbb9 100644
--- a/linkis-commons/linkis-module/src/main/java/org/apache/linkis/server/utils/ModuleUserUtils.java
+++ b/linkis-commons/linkis-module/src/main/java/org/apache/linkis/server/utils/ModuleUserUtils.java
@@ -22,7 +22,7 @@ public class ModuleUserUtils {
* @param httpServletRequest
* @return
*/
- public ProxyUserEntity getProxyUserEntity(HttpServletRequest httpServletRequest) {
+ public static ProxyUserEntity getProxyUserEntity(HttpServletRequest httpServletRequest) {
String loginUser = SecurityFilter.getLoginUsername(httpServletRequest);
Option<String> proxyUserUsername =
ProxyUserSSOUtils.getProxyUserUsername(httpServletRequest);
@@ -41,7 +41,8 @@ public class ModuleUserUtils {
* @param msg
* @return
*/
- public ProxyUserEntity getProxyUserEntity(HttpServletRequest httpServletRequest, String msg) {
+ public static ProxyUserEntity getProxyUserEntity(
+ HttpServletRequest httpServletRequest, String msg) {
ProxyUserEntity proxyUserEntity = getProxyUserEntity(httpServletRequest);
LOGGER.info(
"user {} proxy to {} operation {}",
@@ -51,7 +52,7 @@ public class ModuleUserUtils {
return proxyUserEntity;
}
- public String getOperationUser(HttpServletRequest httpServletRequest) {
+ public static String getOperationUser(HttpServletRequest httpServletRequest) {
ProxyUserEntity proxyUserEntity = getProxyUserEntity(httpServletRequest);
if (proxyUserEntity.isProxyMode()) {
return proxyUserEntity.getProxyUser();
@@ -67,7 +68,7 @@ public class ModuleUserUtils {
* @param msg
* @return
*/
- public String getOperationUser(HttpServletRequest httpServletRequest, String msg) {
+ public static String getOperationUser(HttpServletRequest httpServletRequest, String msg) {
ProxyUserEntity proxyUserEntity = getProxyUserEntity(httpServletRequest, msg);
if (proxyUserEntity.isProxyMode()) {
return proxyUserEntity.getProxyUser();
diff --git a/linkis-commons/linkis-storage/src/main/java/org/apache/linkis/storage/fs/impl/LocalFileSystem.java b/linkis-commons/linkis-storage/src/main/java/org/apache/linkis/storage/fs/impl/LocalFileSystem.java
index b026648..edee4eb 100644
--- a/linkis-commons/linkis-storage/src/main/java/org/apache/linkis/storage/fs/impl/LocalFileSystem.java
+++ b/linkis-commons/linkis-storage/src/main/java/org/apache/linkis/storage/fs/impl/LocalFileSystem.java
@@ -180,7 +180,6 @@ public class LocalFileSystem extends FileSystem {
}
return true;
}
-
}
@Override
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 d25a693..c7760da 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
@@ -37,6 +37,7 @@ import org.apache.linkis.scheduler.queue.Job;
import org.apache.linkis.scheduler.queue.SchedulerEventState;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
@@ -76,7 +77,8 @@ public class EntranceRestfulApi implements EntranceRestfulRemote {
public Message execute(HttpServletRequest req, @RequestBody Map<String, Object> json) {
Message message = null;
logger.info("Begin to get an execID");
- json.put(TaskConstant.UMUSER, SecurityFilter.getLoginUsername(req));
+ json.put(TaskConstant.EXECUTE_USER, ModuleUserUtils.getOperationUser(req));
+ json.put(TaskConstant.SUBMIT_USER, SecurityFilter.getLoginUsername(req));
HashMap<String, String> map = (HashMap) json.get(TaskConstant.SOURCE);
if (map == null) {
map = new HashMap<>();
@@ -88,6 +90,7 @@ public class EntranceRestfulApi implements EntranceRestfulRemote {
Job job = entranceServer.getJob(jobId).get();
JobRequest jobReq = ((EntranceJob) job).getJobRequest();
Long jobReqId = jobReq.getId();
+ ModuleUserUtils.getOperationUser(req, "execute task,id: " + jobReqId);
pushLog(
LogUtils.generateInfo(
"You have submitted a new job, script code (after variable substitution) is"),
@@ -126,6 +129,7 @@ public class EntranceRestfulApi implements EntranceRestfulRemote {
public Message submit(HttpServletRequest req, @RequestBody Map<String, Object> json) {
Message message = null;
logger.info("Begin to get an execID");
+ json.put(TaskConstant.EXECUTE_USER, ModuleUserUtils.getOperationUser(req));
json.put(TaskConstant.SUBMIT_USER, SecurityFilter.getLoginUsername(req));
HashMap<String, String> map = (HashMap) json.get(TaskConstant.SOURCE);
if (map == null) {
diff --git a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceWebSocketService.scala b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceWebSocketService.scala
index 7b44891..64fc28f 100644
--- a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceWebSocketService.scala
+++ b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/EntranceWebSocketService.scala
@@ -120,7 +120,7 @@ class EntranceWebSocketService extends ServerEventService with EntranceEventList
def dealExecute(event:ServerEvent):Message = {
val params = event.getData.map{case (k, v) => k -> v.asInstanceOf[Any]} //TODO Convert to a suitable Map(转换成合适的Map)
val websocketTag = event.getWebsocketTag
- params.put(TaskConstant.UMUSER, event.getUser)
+ params.put(TaskConstant.EXECUTE_USER, event.getUser)
val jobId = entranceServer.execute(params)
jobIdToEventId synchronized jobIdToEventId.put(jobId, event.getId)
websocketTagJobID synchronized websocketTagJobID.put(jobId, websocketTag)
diff --git a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/interceptor/impl/LabelCheckInterceptor.scala b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/interceptor/impl/LabelCheckInterceptor.scala
index cb80d16..115fb83 100644
--- a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/interceptor/impl/LabelCheckInterceptor.scala
+++ b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/interceptor/impl/LabelCheckInterceptor.scala
@@ -70,12 +70,7 @@ class LabelCheckInterceptor extends EntranceInterceptor {
if (userCreatorLabelOption.isDefined) {
val userCreator = userCreatorLabelOption.get.asInstanceOf[UserCreatorLabel]
if (StringUtils.isNotBlank(userCreator.getUser)) {
- val userInLabel = userCreator.getUser
- if (userInLabel.equalsIgnoreCase(executeUser) && userInLabel.equalsIgnoreCase(submitUser)) {
return
- } else {
- throw LabelCheckException(50080, s"SubmitUser : ${submitUser} must be the same as ExecuteUser : ${executeUser} , and user : ${userInLabel} in userCreatorLabel.")
- }
}
}
throw LabelCheckException(50079, "UserCreatorLabel must be need")
diff --git a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/parser/CommonEntranceParser.scala b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/parser/CommonEntranceParser.scala
index 56a1bee..1cfb322 100644
--- a/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/parser/CommonEntranceParser.scala
+++ b/linkis-computation-governance/linkis-entrance/src/main/scala/org/apache/linkis/entrance/parser/CommonEntranceParser.scala
@@ -155,13 +155,13 @@ class CommonEntranceParser(val persistenceManager: PersistenceManager) extends A
val jobReq = new JobRequest
jobReq.setCreatedTime(new Date(System.currentTimeMillis))
- val umUser = params.get(TaskConstant.UMUSER).asInstanceOf[String]
+ val umUser = params.get(TaskConstant.EXECUTE_USER).asInstanceOf[String]
val submitUser = params.get(TaskConstant.SUBMIT_USER).asInstanceOf[String]
jobReq.setSubmitUser(submitUser)
if (StringUtils.isBlank(submitUser)) {
jobReq.setSubmitUser(umUser)
}
- if (umUser == null) throw new EntranceIllegalParamException(20005, "umUser can not be null")
+ if (umUser == null) throw new EntranceIllegalParamException(20005, "execute user can not be null")
jobReq.setExecuteUser(umUser)
var executionCode = params.get(TaskConstant.EXECUTIONCODE).asInstanceOf[String]
val _params = params.get(TaskConstant.PARAMS)
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 cbf9329..077177c 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
@@ -43,7 +43,7 @@ import org.apache.linkis.manager.label.entity.UserModifiable;
import org.apache.linkis.manager.label.exception.LabelErrorException;
import org.apache.linkis.manager.label.service.NodeLabelService;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.ArrayUtils;
@@ -106,7 +106,7 @@ public class EMRestfulApi {
@RequestParam(value = "nodeHealthy", required = false) String nodeHealthy,
@RequestParam(value = "owner", required = false) String owner)
throws AMErrorException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "listAllEMs");
checkAdmin(userName);
EMNode[] allEM = emInfoService.getAllEM();
ArrayList<EMNodeVo> allEMVo = AMUtils.copyToEMVo(allEM);
@@ -172,7 +172,7 @@ public class EMRestfulApi {
@Transactional(rollbackFor = Exception.class)
public Message modifyEMInfo(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws AMErrorException, LabelErrorException {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "modifyEMInfo");
checkAdmin(username);
String applicationName = jsonNode.get("applicationName").asText();
String instance = jsonNode.get("instance").asText();
@@ -232,8 +232,9 @@ public class EMRestfulApi {
@RequestMapping(path = "/executeECMOperationByEC", method = RequestMethod.POST)
public Message executeECMOperationByEC(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws AMErrorException {
- String userName = SecurityFilter.getLoginUsername(req);
+
ServiceInstance serviceInstance = EngineRestfulApi.getServiceInstance(jsonNode);
+ String userName = ModuleUserUtils.getOperationUser(req, "executeECMOperationByEC");
logger.info(
"User {} try to execute ECM Operation by EngineConn {}.",
userName,
@@ -268,7 +269,7 @@ public class EMRestfulApi {
@RequestMapping(path = "/executeECMOperation", method = RequestMethod.POST)
public Message executeECMOperation(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws AMErrorException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "executeECMOperation");
ServiceInstance serviceInstance = EngineRestfulApi.getServiceInstance(jsonNode);
logger.info("User {} try to execute ECM Operation with {}.", userName, serviceInstance);
EMNode ecmNode = this.emInfoService.getEM(serviceInstance);
@@ -294,7 +295,7 @@ public class EMRestfulApi {
@RequestMapping(path = "/openEngineLog", method = RequestMethod.POST)
public Message openEngineLog(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws AMErrorException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "openEngineLog");
EMNode ecmNode;
Map<String, Object> parameters;
try {
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EngineRestfulApi.java b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EngineRestfulApi.java
index 9df0124..f83ba61 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EngineRestfulApi.java
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/java/org/apache/linkis/manager/am/restful/EngineRestfulApi.java
@@ -43,7 +43,7 @@ import org.apache.linkis.manager.label.exception.LabelErrorException;
import org.apache.linkis.manager.label.service.NodeLabelService;
import org.apache.linkis.rpc.Sender;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
@@ -90,7 +90,7 @@ public class EngineRestfulApi {
@RequestMapping(path = "/createEngineConn", method = RequestMethod.POST)
public Message createEngineConn(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws IOException, InterruptedException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "createEngineConn");
EngineCreateRequest engineCreateRequest =
objectMapper.treeToValue(jsonNode, EngineCreateRequest.class);
engineCreateRequest.setUser(userName);
@@ -135,7 +135,7 @@ public class EngineRestfulApi {
@RequestMapping(path = "/getEngineConn", method = RequestMethod.POST)
public Message getEngineConn(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws AMErrorException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "getEngineConn");
ServiceInstance serviceInstance = getServiceInstance(jsonNode);
EngineNode engineNode = engineCreateService.getEngineNode(serviceInstance);
if (!userName.equals(engineNode.getOwner()) && !isAdmin(userName)) {
@@ -147,8 +147,10 @@ public class EngineRestfulApi {
@RequestMapping(path = "/killEngineConn", method = RequestMethod.POST)
public Message killEngineConn(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws Exception {
- String userName = SecurityFilter.getLoginUsername(req);
+
ServiceInstance serviceInstance = getServiceInstance(jsonNode);
+ String userName =
+ ModuleUserUtils.getOperationUser(req, "killEngineConn:" + serviceInstance);
logger.info("User {} try to kill engineConn {}.", userName, serviceInstance);
EngineNode engineNode = engineCreateService.getEngineNode(serviceInstance);
if (!userName.equals(engineNode.getOwner()) && !isAdmin(userName)) {
@@ -164,7 +166,7 @@ public class EngineRestfulApi {
@RequestMapping(path = "/rm/enginekill", method = RequestMethod.POST)
public Message killEngine(HttpServletRequest req, @RequestBody Map<String, String>[] param)
throws Exception {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "enginekill");
Sender sender = Sender.getSender(Sender.getThisServiceInstance());
for (Map<String, String> engineParam : param) {
String moduleName = engineParam.get("applicationName");
@@ -180,7 +182,7 @@ public class EngineRestfulApi {
@RequestMapping(path = "/listUserEngines", method = RequestMethod.GET)
public Message listUserEngines(HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "listUserEngines");
List<EngineNode> engineNodes = engineInfoService.listUserEngines(userName);
return Message.ok().data("engines", engineNodes);
}
@@ -188,7 +190,7 @@ public class EngineRestfulApi {
@RequestMapping(path = "/listEMEngines", method = RequestMethod.POST)
public Message listEMEngines(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws IOException, AMErrorException {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "listEMEngines");
if (!isAdmin(username)) {
throw new AMErrorException(
210003, "Only admin can search engine information(只有管理员才能查询所有引擎信息).");
@@ -265,7 +267,7 @@ public class EngineRestfulApi {
@RequestMapping(path = "/modifyEngineInfo", method = RequestMethod.PUT)
public Message modifyEngineInfo(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws AMErrorException, LabelErrorException {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "modifyEngineInfo");
if (!isAdmin(username)) {
throw new AMErrorException(
210003, "Only admin can modify engineConn information(只有管理员才能修改引擎信息).");
@@ -309,7 +311,7 @@ public class EngineRestfulApi {
@RequestMapping(path = "/executeEngineConnOperation", method = RequestMethod.POST)
public Message executeEngineConnOperation(
HttpServletRequest req, @RequestBody JsonNode jsonNode) throws Exception {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "executeEngineConnOperation");
ServiceInstance serviceInstance = getServiceInstance(jsonNode);
logger.info("User {} try to execute Engine Operation {}.", userName, serviceInstance);
EngineNode engineNode = engineCreateService.getEngineNode(serviceInstance);
diff --git a/linkis-computation-governance/linkis-manager/linkis-resource-manager/src/main/scala/org/apache/linkis/resourcemanager/restful/RMMonitorRest.scala b/linkis-computation-governance/linkis-manager/linkis-resource-manager/src/main/scala/org/apache/linkis/resourcemanager/restful/RMMonitorRest.scala
index c5e9592..98bf442 100644
--- a/linkis-computation-governance/linkis-manager/linkis-resource-manager/src/main/scala/org/apache/linkis/resourcemanager/restful/RMMonitorRest.scala
+++ b/linkis-computation-governance/linkis-manager/linkis-resource-manager/src/main/scala/org/apache/linkis/resourcemanager/restful/RMMonitorRest.scala
@@ -44,6 +44,7 @@ import org.apache.linkis.resourcemanager.service.impl.UserResourceService
import org.apache.linkis.resourcemanager.service.{LabelResourceService, ResourceManager}
import org.apache.linkis.resourcemanager.utils.{RMUtils, UserConfiguration}
import org.apache.linkis.server.security.SecurityFilter
+import org.apache.linkis.server.utils.ModuleUserUtils
import org.apache.linkis.server.{BDPJettyServerHelper, Message}
import org.json4s.DefaultFormats
import org.json4s.jackson.Serialization.write
@@ -108,7 +109,7 @@ class RMMonitorRest extends Logging {
@RequestMapping(path = Array("applicationlist"), method = Array(RequestMethod.POST))
def getApplicationList(request: HttpServletRequest, @RequestBody param: util.Map[String, AnyRef]): Message = {
val message = Message.ok("")
- val userName = SecurityFilter.getLoginUsername(request)
+ val userName = ModuleUserUtils.getOperationUser(request, "applicationlist")
val userCreator = param.get("userCreator").asInstanceOf[String]
val engineType = if (param.get("engineType") == null) null else param.get("engineType").asInstanceOf[String]
val nodes = getEngineNodes(userName, true)
@@ -228,7 +229,7 @@ class RMMonitorRest extends Logging {
@RequestMapping(path = Array("userresources"), method = Array(RequestMethod.POST))
def getUserResource(request: HttpServletRequest, @RequestBody(required = false) param: util.Map[String, AnyRef]): Message = {
val message = Message.ok("")
- val userName = SecurityFilter.getLoginUsername(request)
+ val userName = ModuleUserUtils.getOperationUser(request, "get userresources")
var nodes = getEngineNodes(userName, true)
if (nodes == null) {
nodes = new Array[EngineNode](0)
@@ -336,7 +337,7 @@ class RMMonitorRest extends Logging {
@RequestMapping(path = Array("engines"), method = Array(RequestMethod.POST))
def getEngines(request: HttpServletRequest, @RequestBody(required = false) param: util.Map[String, AnyRef]): Message = {
val message = Message.ok("")
- val userName = SecurityFilter.getLoginUsername(request)
+ val userName = ModuleUserUtils.getOperationUser(request, "get engines")
val nodes = getEngineNodes(userName, true)
if(nodes == null || nodes.isEmpty) return message
val engines = ArrayBuffer[mutable.HashMap[String, Any]]()
@@ -455,7 +456,7 @@ class RMMonitorRest extends Logging {
@RequestMapping(path = Array("queues"), method = Array(RequestMethod.POST))
def getQueues(request: HttpServletRequest, @RequestBody(required = false) param: util.Map[String, AnyRef]): Message = {
val message = Message.ok()
- val userName = SecurityFilter.getLoginUsername(request)
+ val userName = ModuleUserUtils.getOperationUser(request, "get queues")
val clusters = new mutable.ArrayBuffer[Any]()
val clusterInfo = new mutable.HashMap[String, Any]()
val queues = new mutable.LinkedHashSet[String]()
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 abf061f..d634370 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
@@ -26,7 +26,7 @@ import org.apache.linkis.bml.service.*;
import org.apache.linkis.bml.util.HttpRequestHelper;
import org.apache.linkis.common.exception.ErrorException;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
@@ -75,8 +75,10 @@ public class BmlProjectRestful {
@RequestMapping(path = "createBmlProject", method = RequestMethod.POST)
public Message createBmlProject(HttpServletRequest request, @RequestBody JsonNode jsonNode) {
- String username = SecurityFilter.getLoginUsername(request);
+
String projectName = jsonNode.get(PROJECT_NAME_STR).textValue();
+ String username =
+ ModuleUserUtils.getOperationUser(request, "createBmlProject" + projectName);
LOGGER.info("{} begins to create a project {} in bml", username, projectName);
JsonNode editUserNode = jsonNode.get(EDIT_USERS_STR);
JsonNode accessUserNode = jsonNode.get(ACCESS_USERS_STR);
@@ -109,7 +111,7 @@ public class BmlProjectRestful {
@RequestParam(name = "projectName") String projectName,
@RequestParam(name = "file") List<MultipartFile> files)
throws ErrorException {
- String username = SecurityFilter.getLoginUsername(request);
+ String username = ModuleUserUtils.getOperationUser(request, "uploadShareResource");
Message message;
try {
LOGGER.info(
@@ -174,7 +176,8 @@ public class BmlProjectRestful {
@RequestParam("resourceId") String resourceId,
@RequestParam("file") MultipartFile file)
throws ErrorException {
- String username = SecurityFilter.getLoginUsername(request);
+ String username =
+ ModuleUserUtils.getOperationUser(request, "updateShareResource:" + resourceId);
if (StringUtils.isEmpty(resourceId) || !resourceService.checkResourceId(resourceId)) {
LOGGER.error("the error resourceId is {} ", resourceId);
throw new BmlServerParaErrorException(
@@ -386,7 +389,7 @@ public class BmlProjectRestful {
@RequestMapping(path = "attachResourceAndProject", method = RequestMethod.POST)
public Message attachResourceAndProject(
HttpServletRequest request, @RequestBody JsonNode jsonNode) throws ErrorException {
- String username = SecurityFilter.getLoginUsername(request);
+ String username = ModuleUserUtils.getOperationUser(request, "attachResourceAndProject");
String projectName = jsonNode.get(PROJECT_NAME_STR).textValue();
String resourceId = jsonNode.get("resourceId").textValue();
LOGGER.info("begin to attach {} and {}", projectName, username);
@@ -397,7 +400,7 @@ public class BmlProjectRestful {
@RequestMapping(path = "updateProjectUsers", method = RequestMethod.POST)
public Message updateProjectUsers(HttpServletRequest request, @RequestBody JsonNode jsonNode)
throws ErrorException {
- String username = SecurityFilter.getLoginUsername(request);
+ String username = ModuleUserUtils.getOperationUser(request, "updateProjectUsers");
String projectName = jsonNode.get("projectName").textValue();
LOGGER.info("{} begins to update project users for {}", username, projectName);
List<String> editUsers = 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 f734a5f..0537245 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
@@ -36,7 +36,7 @@ import org.apache.linkis.bml.vo.ResourceVO;
import org.apache.linkis.bml.vo.ResourceVersionsVO;
import org.apache.linkis.common.exception.ErrorException;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
@@ -828,7 +828,6 @@ public class BmlRestfulApi {
@RequestMapping(path = "changeOwner", method = RequestMethod.POST)
public Message changeOwnerByResourceId(
HttpServletRequest request, @RequestBody JsonNode jsonNode) throws ErrorException {
- String username = SecurityFilter.getLoginUsername(request);
String resourceId = jsonNode.get("resourceId").textValue();
String oldOwner = jsonNode.get("oldOwner").textValue();
String newOwner = jsonNode.get("newOwner").textValue();
@@ -839,7 +838,7 @@ public class BmlRestfulApi {
@RequestMapping(path = "copyResourceToAnotherUser", method = RequestMethod.POST)
public Message copyResourceToAnotherUser(
HttpServletRequest request, @RequestBody JsonNode jsonNode) {
- String username = SecurityFilter.getLoginUsername(request);
+ String username = ModuleUserUtils.getOperationUser(request, "copyResourceToAnotherUser");
String resourceId = jsonNode.get("resourceId").textValue();
String anotherUser = jsonNode.get("anotherUser").textValue();
Message message = null;
@@ -867,7 +866,7 @@ public class BmlRestfulApi {
@RequestMapping(path = "rollbackVersion", method = RequestMethod.POST)
public Message rollbackVersion(HttpServletRequest request, @RequestBody JsonNode jsonNode) {
- String username = SecurityFilter.getLoginUsername(request);
+ String username = ModuleUserUtils.getOperationUser(request, "rollbackVersion");
String resourceId = jsonNode.get("resourceId").textValue();
String rollbackVersion = jsonNode.get("version").textValue();
Message message = null;
diff --git a/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/RestfulUtils.java b/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/RestfulUtils.java
index 3f4a416..c55779f 100644
--- a/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/RestfulUtils.java
+++ b/linkis-public-enhancements/linkis-bml/linkis-bml-server/src/main/java/org/apache/linkis/bml/restful/RestfulUtils.java
@@ -20,7 +20,7 @@ package org.apache.linkis.bml.restful;
import org.apache.linkis.bml.common.BmlAuthorityException;
import org.apache.linkis.bml.common.Constant;
import org.apache.linkis.bml.service.ResourceService;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import javax.servlet.http.HttpServletRequest;
@@ -39,7 +39,7 @@ public class RestfulUtils {
public static String getUserName(HttpServletRequest request) throws BmlAuthorityException {
String user;
try {
- user = SecurityFilter.getLoginUsername(request);
+ user = ModuleUserUtils.getOperationUser(request);
} catch (final Exception e) {
throw new BmlAuthorityException();
}
diff --git a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/CsRestfulParent.java b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/CsRestfulParent.java
index d1c73fb..22e5015 100644
--- a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/CsRestfulParent.java
+++ b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/CsRestfulParent.java
@@ -33,7 +33,7 @@ import org.apache.linkis.cs.server.scheduler.HttpAnswerJob;
import org.apache.linkis.cs.server.scheduler.RestJobBuilder;
import org.apache.linkis.cs.server.util.CsUtils;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import javax.servlet.http.HttpServletRequest;
@@ -51,7 +51,7 @@ public interface CsRestfulParent {
// TODO: 2020/3/3 单例
HttpAnswerJob job = (HttpAnswerJob) new RestJobBuilder().build(getServiceType());
HttpRequestProtocol protocol = job.getRequestProtocol();
- protocol.setUsername(SecurityFilter.getLoginUsername(req));
+ protocol.setUsername(ModuleUserUtils.getOperationUser(req));
protocol.setServiceMethod(method);
protocol.setRequestObjects(objects);
getScheduler().submit(job);
diff --git a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/test/java/org/apache/linkis/cs/server/CsRestfulParent.java b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/test/java/org/apache/linkis/cs/server/CsRestfulParent.java
index 4faa790..8f34b6a 100644
--- a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/test/java/org/apache/linkis/cs/server/CsRestfulParent.java
+++ b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/test/java/org/apache/linkis/cs/server/CsRestfulParent.java
@@ -26,7 +26,7 @@ import org.apache.linkis.cs.server.scheduler.CsScheduler;
import org.apache.linkis.cs.server.scheduler.HttpAnswerJob;
import org.apache.linkis.cs.server.scheduler.RestJobBuilder;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import javax.servlet.http.HttpServletRequest;
@@ -37,7 +37,7 @@ public interface CsRestfulParent {
throws InterruptedException {
HttpAnswerJob job = (HttpAnswerJob) new RestJobBuilder().build(getServiceType());
HttpRequestProtocol protocol = job.getRequestProtocol();
- protocol.setUsername(SecurityFilter.getLoginUsername(req));
+ protocol.setUsername(ModuleUserUtils.getOperationUser(req));
protocol.setServiceMethod(method);
protocol.setRequestObjects(objects);
getScheduler().submit(job);
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/DataSourceRestfulApi.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/DataSourceRestfulApi.java
index c5f1e04..2b0fc99 100644
--- a/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/DataSourceRestfulApi.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/DataSourceRestfulApi.java
@@ -20,7 +20,7 @@ package org.apache.linkis.metadata.restful.api;
import org.apache.linkis.metadata.restful.remote.DataSourceRestfulRemote;
import org.apache.linkis.metadata.service.DataSourceService;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -46,7 +46,7 @@ public class DataSourceRestfulApi implements DataSourceRestfulRemote {
@Override
@RequestMapping(path = "dbs", method = RequestMethod.GET)
public Message queryDatabaseInfo(HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "get dbs");
try {
JsonNode dbs = dataSourceService.getDbs(userName);
return Message.ok("").data("dbs", dbs);
@@ -59,7 +59,7 @@ public class DataSourceRestfulApi implements DataSourceRestfulRemote {
@Override
@RequestMapping(path = "all", method = RequestMethod.GET)
public Message queryDbsWithTables(HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "get all db and tables");
try {
JsonNode dbs = dataSourceService.getDbsWithTables(userName);
return Message.ok("").data("dbs", dbs);
@@ -74,7 +74,7 @@ public class DataSourceRestfulApi implements DataSourceRestfulRemote {
public Message queryTables(
@RequestParam(value = "database", required = false) String database,
HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "get tables");
try {
JsonNode tables = dataSourceService.queryTables(database, userName);
return Message.ok("").data("tables", tables);
@@ -90,7 +90,7 @@ public class DataSourceRestfulApi implements DataSourceRestfulRemote {
@RequestParam(value = "database", required = false) String database,
@RequestParam(value = "table", required = false) String table,
HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "get columns of table " + table);
try {
JsonNode columns = dataSourceService.queryTableMeta(database, table, userName);
return Message.ok("").data("columns", columns);
@@ -107,7 +107,7 @@ public class DataSourceRestfulApi implements DataSourceRestfulRemote {
@RequestParam(value = "table", required = false) String table,
@RequestParam(value = "partition", required = false) String partition,
HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "get size ");
try {
JsonNode sizeNode;
if (StringUtils.isBlank(partition)) {
@@ -128,7 +128,7 @@ public class DataSourceRestfulApi implements DataSourceRestfulRemote {
@RequestParam(value = "database", required = false) String database,
@RequestParam(value = "table", required = false) String table,
HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "get partitions of " + table);
try {
JsonNode partitionNode = dataSourceService.getPartitions(database, table, userName);
return Message.ok("").data("partitionInfo", partitionNode);
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/MdqTableRestfulApi.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/MdqTableRestfulApi.java
index f7d1f67..f2abdd6 100644
--- a/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/MdqTableRestfulApi.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata/src/main/java/org/apache/linkis/metadata/restful/api/MdqTableRestfulApi.java
@@ -28,7 +28,7 @@ import org.apache.linkis.metadata.domain.mdq.vo.MdqTableStatisticInfoVO;
import org.apache.linkis.metadata.exception.MdqIllegalParamException;
import org.apache.linkis.metadata.service.MdqService;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -66,7 +66,7 @@ public class MdqTableRestfulApi {
@RequestParam(value = "database", required = false) String database,
@RequestParam(value = "tableName", required = false) String tableName,
HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "getTableBaseInfo " + tableName);
MdqTableBaseInfoVO tableBaseInfo;
if (mdqService.isExistInMdq(database, tableName, userName)) {
tableBaseInfo = mdqService.getTableBaseInfoFromMdq(database, tableName, userName);
@@ -81,7 +81,7 @@ public class MdqTableRestfulApi {
@RequestParam(value = "database", required = false) String database,
@RequestParam(value = "tableName", required = false) String tableName,
HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "getTableFieldsInfo " + tableName);
List<MdqTableFieldsInfoVO> tableFieldsInfo;
if (mdqService.isExistInMdq(database, tableName, userName)) {
tableFieldsInfo = mdqService.getTableFieldsInfoFromMdq(database, tableName, userName);
@@ -100,7 +100,8 @@ public class MdqTableRestfulApi {
@RequestParam(value = "partitionSort", defaultValue = "desc") String partitionSort,
HttpServletRequest req)
throws IOException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName =
+ ModuleUserUtils.getOperationUser(req, "getTableStatisticInfo " + tableName);
MdqTableStatisticInfoVO tableStatisticInfo =
mdqService.getTableStatisticInfo(database, tableName, userName);
int totalSize = 0;
@@ -156,7 +157,8 @@ public class MdqTableRestfulApi {
@RequestParam(value = "partitionPath", required = false) String partitionName,
HttpServletRequest req)
throws IOException, MdqIllegalParamException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName =
+ ModuleUserUtils.getOperationUser(req, "getPartitionStatisticInfo " + tableName);
MdqTablePartitionStatisticInfoVO partition =
mdqService.getPartitionStatisticInfo(database, tableName, userName, partitionName);
return Message.ok().data("partitionStatisticInfo", partition);
@@ -173,7 +175,7 @@ public class MdqTableRestfulApi {
@RequestMapping(path = "persistTable", method = RequestMethod.POST)
public Message persistTable(HttpServletRequest req, @RequestBody JsonNode json)
throws IOException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "persistTable ");
MdqTableBO table = mapper.treeToValue(json.get("table"), MdqTableBO.class);
mdqService.persistTable(table, userName);
return Message.ok();
@@ -181,7 +183,7 @@ public class MdqTableRestfulApi {
@RequestMapping(path = "displaysql", method = RequestMethod.POST)
public Message displaySql(HttpServletRequest request, @RequestBody JsonNode json) {
- String userName = SecurityFilter.getLoginUsername(request);
+ String userName = ModuleUserUtils.getOperationUser(request, "displaysql ");
logger.info("display sql for user {} ", userName);
StringBuilder sb = new StringBuilder();
String retSql = "";
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java
index afc6974..2d2055c 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-configuration/src/main/java/org/apache/linkis/configuration/restful/api/ConfigurationRestfulApi.java
@@ -30,7 +30,7 @@ import org.apache.linkis.manager.label.entity.engine.UserCreatorLabel;
import org.apache.linkis.manager.label.utils.LabelUtils;
import org.apache.linkis.server.BDPJettyServerHelper;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.lang.StringUtils;
@@ -74,7 +74,6 @@ public class ConfigurationRestfulApi {
@RequestParam(value = "token", required = false) String token,
@RequestParam(value = "keyJson", required = false) String keyJson)
throws ConfigurationException {
- String username = SecurityFilter.getLoginUsername(req);
if (StringUtils.isBlank(engineType)
|| StringUtils.isBlank(version)
|| StringUtils.isBlank(token)) {
@@ -168,7 +167,7 @@ public class ConfigurationRestfulApi {
@RequestParam(value = "version", required = false) String version,
@RequestParam(value = "creator", required = false) String creator)
throws ConfigurationException {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "getFullTreesByAppName");
if (creator != null && (creator.equals("通用设置") || creator.equals("全局设置"))) {
engineType = "*";
version = "*";
@@ -184,7 +183,6 @@ public class ConfigurationRestfulApi {
@RequestMapping(path = "/getCategory", method = RequestMethod.GET)
public Message getCategory(HttpServletRequest req) {
- String username = SecurityFilter.getLoginUsername(req);
List<CategoryLabelVo> categoryLabelList = categoryService.getAllCategory();
return Message.ok().data("Category", categoryLabelList);
}
@@ -192,7 +190,7 @@ public class ConfigurationRestfulApi {
@RequestMapping(path = "/createFirstCategory", method = RequestMethod.POST)
public Message createFirstCategory(HttpServletRequest request, @RequestBody JsonNode jsonNode)
throws ConfigurationException {
- String username = SecurityFilter.getLoginUsername(request);
+ String username = ModuleUserUtils.getOperationUser(request, "createFirstCategory");
checkAdmin(username);
String categoryName = jsonNode.get("categoryName").asText();
String description = jsonNode.get("description").asText();
@@ -209,7 +207,7 @@ public class ConfigurationRestfulApi {
@RequestMapping(path = "/deleteCategory", method = RequestMethod.POST)
public Message deleteCategory(HttpServletRequest request, @RequestBody JsonNode jsonNode)
throws ConfigurationException {
- String username = SecurityFilter.getLoginUsername(request);
+ String username = ModuleUserUtils.getOperationUser(request, "deleteCategory");
checkAdmin(username);
Integer categoryId = jsonNode.get("categoryId").asInt();
categoryService.deleteCategory(categoryId);
@@ -219,7 +217,6 @@ public class ConfigurationRestfulApi {
@RequestMapping(path = "/createSecondCategory", method = RequestMethod.POST)
public Message createSecondCategory(HttpServletRequest request, @RequestBody JsonNode jsonNode)
throws ConfigurationException {
- String username = SecurityFilter.getLoginUsername(request);
Integer categoryId = jsonNode.get("categoryId").asInt();
String engineType = jsonNode.get("engineType").asText();
String version = jsonNode.get("version").asText();
@@ -246,7 +243,7 @@ public class ConfigurationRestfulApi {
if (creator != null && (creator.equals("通用设置") || creator.equals("全局设置"))) {
creator = "*";
}
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "saveFullTree");
ArrayList<ConfigValue> createList = new ArrayList<>();
ArrayList<ConfigValue> updateList = new ArrayList<>();
for (Object o : fullTrees) {
@@ -285,7 +282,6 @@ public class ConfigurationRestfulApi {
@RequestMapping(path = "/updateCategoryInfo", method = RequestMethod.POST)
public Message updateCategoryInfo(HttpServletRequest request, @RequestBody JsonNode jsonNode)
throws ConfigurationException {
- String username = SecurityFilter.getLoginUsername(request);
String description = null;
Integer categoryId = null;
try {
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java b/linkis-public-enhancements/linkis-publicservice/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java
index e33b5ea..2a42def 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-instance-label/linkis-instance-label-server/src/main/java/org/apache/linkis/instance/label/restful/InstanceRestful.java
@@ -29,7 +29,7 @@ import org.apache.linkis.manager.label.entity.Label;
import org.apache.linkis.manager.label.entity.UserModifiable;
import org.apache.linkis.manager.label.utils.LabelUtils;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
@@ -60,7 +60,6 @@ public class InstanceRestful {
@RequestMapping(path = "/allInstance", method = RequestMethod.GET)
public Message listAllInstanceWithLabel(HttpServletRequest req) {
- String username = SecurityFilter.getLoginUsername(req);
logger.info("start to get all instance informations.....");
List<InstanceInfo> instances = insLabelService.listAllInstanceWithLabel();
insLabelService.markInstanceLabel(instances);
@@ -72,7 +71,7 @@ public class InstanceRestful {
@RequestMapping(path = "/instanceLabel", method = RequestMethod.PUT)
public Message upDateInstanceLabel(HttpServletRequest req, @RequestBody JsonNode jsonNode)
throws Exception {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req);
String[] adminArray = InstanceConfigration.GOVERNANCE_STATION_ADMIN().getValue().split(",");
if (adminArray != null && !Arrays.asList(adminArray).contains(username)) {
throw new Exception("only admin can modify instance label(只有管理员才能修改标签)");
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
index 0a4901c..b049d89 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
@@ -27,7 +27,7 @@ import org.apache.linkis.jobhistory.service.JobHistoryQueryService;
import org.apache.linkis.jobhistory.util.QueryUtils;
import org.apache.linkis.protocol.constants.TaskConstant;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
@@ -55,7 +55,7 @@ public class QueryRestfulApi {
@RequestMapping(path = "/governanceStationAdmin", method = RequestMethod.GET)
public Message governanceStationAdmin(HttpServletRequest req) {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "governanceStationAdmin");
String[] split = JobhistoryConfiguration.GOVERNANCE_STATION_ADMIN().getValue().split(",");
boolean match = Arrays.stream(split).anyMatch(username::equalsIgnoreCase);
return Message.ok().data("admin", match);
@@ -63,7 +63,7 @@ public class QueryRestfulApi {
@RequestMapping(path = "/{id}/get", method = RequestMethod.GET)
public Message getTaskByID(HttpServletRequest req, @PathVariable("id") Long jobId) {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "get task " + jobId);
if (QueryUtils.isJobHistoryAdmin(username)
|| !JobhistoryConfiguration.JOB_HISTORY_SAFE_TRIGGER()) {
username = null;
@@ -112,7 +112,7 @@ public class QueryRestfulApi {
@RequestParam(value = "proxyUser", required = false) String proxyUser,
@RequestParam(value = "isAdminView", required = false) Boolean isAdminView)
throws IOException, QueryException {
- String username = SecurityFilter.getLoginUsername(req);
+ String username = ModuleUserUtils.getOperationUser(req, "list task ");
if (StringUtils.isEmpty(status)) {
status = null;
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java
index a9f6a2c..57da63b 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/BMLFsRestfulApi.java
@@ -22,7 +22,7 @@ import org.apache.linkis.filesystem.bml.BMLHelper;
import org.apache.linkis.filesystem.exception.WorkSpaceException;
import org.apache.linkis.filesystem.exception.WorkspaceExceptionManager;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.linkis.storage.script.*;
import org.apache.linkis.storage.script.writer.StorageScriptFsWriter;
import org.apache.linkis.storage.source.FileSource;
@@ -59,7 +59,7 @@ public class BMLFsRestfulApi {
@RequestParam(value = "projectName", required = false) String projectName,
@RequestParam(value = "fileName", defaultValue = "test.sql") String fileName)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "openScriptFromBML");
Map<String, Object> query = bmlHelper.query(userName, resourceId, version);
InputStream inputStream = (InputStream) query.get("stream");
try (FileSource fileSource =
@@ -91,7 +91,7 @@ public class BMLFsRestfulApi {
@RequestParam(value = "creator", required = false) String creator,
@RequestParam(value = "fileName", defaultValue = "test.sql") String fileName)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "openScriptFromBML");
if (!StringUtils.isEmpty(creator)) {
userName = creator;
}
@@ -123,13 +123,14 @@ public class BMLFsRestfulApi {
@RequestMapping(path = "/saveScriptToBML", method = RequestMethod.POST)
public Message saveScriptToBML(HttpServletRequest req, @RequestBody Map<String, Object> json)
throws IOException {
- String userName = SecurityFilter.getLoginUsername(req);
+
String scriptContent = (String) json.get("scriptContent");
Map<String, Object> params = (Map<String, Object>) json.get("metadata");
String fileName = (String) json.get("fileName");
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);
ScriptFsWriter writer =
StorageScriptFsWriter.getScriptFsWriter(
new FsPath(fileName), Consts.UTF_8.toString(), null);
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
index 0856250..1138aa9 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
@@ -28,7 +28,7 @@ import org.apache.linkis.filesystem.service.FsService;
import org.apache.linkis.filesystem.util.WorkspaceUtil;
import org.apache.linkis.filesystem.validator.PathValidator$;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.linkis.storage.csv.CSVFsWriter;
import org.apache.linkis.storage.domain.FsPathListWithError;
import org.apache.linkis.storage.excel.ExcelFsWriter;
@@ -113,7 +113,7 @@ public class FsRestfulApi {
HttpServletRequest req,
@RequestParam(value = "pathType", required = false) String pathType)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "getUserRootPath");
String hdfsUserRootPathPrefix =
WorkspaceUtil.suffixTuning(HDFS_USER_ROOT_PATH_PREFIX.getValue());
String hdfsUserRootPathSuffix = HDFS_USER_ROOT_PATH_SUFFIX.getValue();
@@ -138,8 +138,9 @@ public class FsRestfulApi {
@RequestMapping(path = "/createNewDir", method = RequestMethod.POST)
public Message createNewDir(HttpServletRequest req, @RequestBody JsonNode json)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+
String path = json.get("path").textValue();
+ String userName = ModuleUserUtils.getOperationUser(req, "createNewDir " + path);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
@@ -159,8 +160,8 @@ public class FsRestfulApi {
@RequestMapping(path = "/createNewFile", method = RequestMethod.POST)
public Message createNewFile(HttpServletRequest req, @RequestBody JsonNode json)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
String path = json.get("path").textValue();
+ String userName = ModuleUserUtils.getOperationUser(req, "createNewFile " + path);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
@@ -182,7 +183,7 @@ public class FsRestfulApi {
throws IOException, WorkSpaceException {
String oldDest = json.get("oldDest").textValue();
String newDest = json.get("newDest").textValue();
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "rename " + newDest);
if (FILESYSTEM_PATH_CHECK_TRIGGER.getValue()) {
LOGGER.info(
String.format(
@@ -218,10 +219,11 @@ public class FsRestfulApi {
@RequestParam("path") String path,
@RequestParam("file") List<MultipartFile> files)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
+ String userName = ModuleUserUtils.getOperationUser(req, "upload " + path);
if (!checkIsUsersDirectory(path, userName)) {
throw WorkspaceExceptionManager.createException(80010, path);
}
@@ -244,8 +246,9 @@ public class FsRestfulApi {
@RequestMapping(path = "/deleteDirOrFile", method = RequestMethod.POST)
public Message deleteDirOrFile(HttpServletRequest req, @RequestBody JsonNode json)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+
String path = json.get("path").textValue();
+ String userName = ModuleUserUtils.getOperationUser(req, "deleteDirOrFile " + path);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
@@ -269,10 +272,11 @@ public class FsRestfulApi {
public Message getDirFileTrees(
HttpServletRequest req, @RequestParam(value = "path", required = false) String path)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
+ String userName = ModuleUserUtils.getOperationUser(req, "getDirFileTrees " + path);
if (!checkIsUsersDirectory(path, userName)) {
throw WorkspaceExceptionManager.createException(80010, path);
}
@@ -324,8 +328,8 @@ public class FsRestfulApi {
PrintWriter writer = null;
try {
String charset = json.get("charset");
- String userName = SecurityFilter.getLoginUsername(req);
String path = json.get("path");
+ String userName = ModuleUserUtils.getOperationUser(req, "download " + path);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
@@ -376,7 +380,7 @@ public class FsRestfulApi {
public Message isExist(
HttpServletRequest req, @RequestParam(value = "path", required = false) String path)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "isExist " + path);
FsPath fsPath = new FsPath(path);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
@@ -394,10 +398,10 @@ public class FsRestfulApi {
@RequestParam(value = "path", required = false) String path,
@RequestParam(value = "pageSize", defaultValue = "5000") Integer pageSize)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
+ String userName = ModuleUserUtils.getOperationUser(req, "fileInfo " + path);
FsPath fsPath = new FsPath(path);
FileSystem fileSystem = fsService.getFileSystem(userName, fsPath);
// Throws an exception if the file does not have read access(如果文件没读权限,抛出异常)
@@ -433,11 +437,12 @@ public class FsRestfulApi {
@RequestParam(value = "pageSize", defaultValue = "5000") Integer pageSize,
@RequestParam(value = "charset", defaultValue = "utf-8") String charset)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
+
Message message = Message.ok();
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
+ String userName = ModuleUserUtils.getOperationUser(req, "openFile " + path);
if (!checkIsUsersDirectory(path, userName)) {
throw WorkspaceExceptionManager.createException(80010, path);
}
@@ -473,8 +478,8 @@ public class FsRestfulApi {
@RequestMapping(path = "/saveScript", method = RequestMethod.POST)
public Message saveScript(HttpServletRequest req, @RequestBody Map<String, Object> json)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
String path = (String) json.get("path");
+ String userName = ModuleUserUtils.getOperationUser(req, "saveScript " + path);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
@@ -530,7 +535,7 @@ public class FsRestfulApi {
PrintWriter writer = null;
FileSource fileSource = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "resultsetToExcel " + path);
FsPath fsPath = new FsPath(path);
FileSystem fileSystem = fsService.getFileSystem(userName, fsPath);
boolean isLimitDownloadSize = RESULT_SET_DOWNLOAD_IS_LIMIT.getValue();
@@ -619,7 +624,7 @@ public class FsRestfulApi {
PrintWriter writer = null;
FileSource fileSource = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "resultsetsToExcel " + path);
FsPath fsPath = new FsPath(path);
FileSystem fileSystem = fsService.getFileSystem(userName, fsPath);
if (StringUtils.isEmpty(path)) {
@@ -688,10 +693,10 @@ public class FsRestfulApi {
@RequestParam(value = "quote", defaultValue = "\"") String quote,
@RequestParam(value = "escapeQuotes", defaultValue = "false") Boolean escapeQuotes)
throws Exception {
- String userName = SecurityFilter.getLoginUsername(req);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
+ String userName = ModuleUserUtils.getOperationUser(req, "formate " + path);
if (!checkIsUsersDirectory(path, userName)) {
throw WorkspaceExceptionManager.createException(80010, path);
}
@@ -747,10 +752,10 @@ public class FsRestfulApi {
@RequestParam(value = "path", required = false) String path,
@RequestParam(value = "proxyUser", required = false) String proxyUser)
throws IOException, WorkSpaceException {
- String userName = SecurityFilter.getLoginUsername(req);
if (StringUtils.isEmpty(path)) {
throw WorkspaceExceptionManager.createException(80004, path);
}
+ String userName = ModuleUserUtils.getOperationUser(req, "openLog " + path);
if (proxyUser != null && WorkspaceUtil.isLogAdmin(userName)) {
userName = proxyUser;
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala
index 3062991..6d12328 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala
@@ -18,7 +18,6 @@
package org.apache.linkis.filesystem.validator
import java.io.File
-
import com.fasterxml.jackson.databind.JsonNode
import org.apache.linkis.common.utils.Logging
import org.apache.linkis.filesystem.conf.WorkSpaceConfiguration._
@@ -27,7 +26,9 @@ import org.apache.linkis.filesystem.util.WorkspaceUtil
import org.apache.linkis.server
import org.apache.linkis.server.{Message, catchIt}
import org.apache.linkis.server.security.SecurityFilter
+import org.apache.linkis.server.utils.ModuleUserUtils
import org.apache.linkis.storage.utils.StorageUtils
+
import javax.servlet.http.{HttpServletRequest, HttpServletResponse}
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.{Around, Aspect, Pointcut}
@@ -68,7 +69,7 @@ class PathValidator extends Logging {
case index: Int => {
val proxyUser = paramNames.indexOf("proxyUser")
if (proxyUser == -1 || StringUtils.isEmpty(args(proxyUser))) {
- username = SecurityFilter.getLoginUsername(args(index).asInstanceOf[HttpServletRequest])
+ username = ModuleUserUtils.getOperationUser(args(index).asInstanceOf[HttpServletRequest])
} else {
//增加proxyuser的判断
username = args(proxyUser).toString
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
index 0b94a47..155bf7e 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
@@ -18,7 +18,7 @@
package org.apache.linkis.udf.api;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.linkis.udf.entity.UDFInfo;
import org.apache.linkis.udf.entity.UDFTree;
import org.apache.linkis.udf.excepiton.UDFException;
@@ -73,7 +73,7 @@ public class UDFApi {
public Message allUDF(HttpServletRequest req, String jsonString) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "get all udfs ");
if (!StringUtils.isEmpty(jsonString)) {
Map<String, Object> json = mapper.reader(Map.class).readValue(jsonString);
String type = (String) json.getOrDefault("type", "self");
@@ -143,7 +143,7 @@ public class UDFApi {
public Message listUDF(HttpServletRequest req, @RequestBody Map<String, Object> json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "list udfs ");
String type = (String) json.getOrDefault("type", SELF_USER);
Long treeId = ((Integer) json.getOrDefault("treeId", -1)).longValue();
String category = ((String) json.getOrDefault("category", ALL));
@@ -162,7 +162,7 @@ public class UDFApi {
public Message addUDF(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "add udf ");
UDFAddVo udfvo = mapper.treeToValue(json.get("udfAddVo"), UDFAddVo.class);
udfvo.setCreateUser(userName);
udfvo.setCreateTime(new Date());
@@ -181,7 +181,7 @@ public class UDFApi {
public Message updateUDF(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "update udf ");
UDFUpdateVo udfUpdateVo =
mapper.treeToValue(json.get("udfUpdateVo"), UDFUpdateVo.class);
udfService.updateUDF(udfUpdateVo, userName);
@@ -196,7 +196,7 @@ public class UDFApi {
@RequestMapping(path = "delete/{id}", method = RequestMethod.POST)
public Message deleteUDF(HttpServletRequest req, @PathVariable("id") Long id) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "delete udf " + id);
Message message = null;
try {
verifyOperationUser(userName, id);
@@ -214,7 +214,7 @@ public class UDFApi {
HttpServletRequest req,
@RequestParam(value = "udfId", required = false) Long udfId,
@RequestParam(value = "isLoad", required = false) Boolean isLoad) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "isload ");
Message message = null;
try {
if (isLoad) {
@@ -232,7 +232,8 @@ public class UDFApi {
@RequestMapping(path = "/tree/add", method = RequestMethod.POST)
public Message addTree(HttpServletRequest req, @RequestBody UDFTree udfTree) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName =
+ ModuleUserUtils.getOperationUser(req, "add udf tree " + udfTree.getName());
Message message = null;
try {
udfTree.setCreateTime(new Date());
@@ -251,7 +252,8 @@ public class UDFApi {
@RequestMapping(path = "/tree/update", method = RequestMethod.POST)
public Message updateTree(HttpServletRequest req, @RequestBody UDFTree udfTree) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName =
+ ModuleUserUtils.getOperationUser(req, "update udf tree " + udfTree.getName());
Message message = null;
try {
udfTree.setUpdateTime(new Date());
@@ -269,7 +271,7 @@ public class UDFApi {
@RequestMapping(path = "/tree/delete/{id}", method = RequestMethod.GET)
public Message deleteTree(HttpServletRequest req, @PathVariable("id") Long id) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "delete udf tree " + id);
Message message = null;
try {
udfTreeService.deleteTree(id, userName);
@@ -285,7 +287,7 @@ public class UDFApi {
public Message Authenticate(HttpServletRequest req) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("UserName is Empty!");
}
@@ -307,14 +309,15 @@ public class UDFApi {
public Message setExpire(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
- if (StringUtils.isEmpty(userName)) {
- throw new UDFException("UserName is Empty!");
- }
Long udfId = json.get("udfId").longValue();
if (StringUtils.isEmpty(udfId)) {
throw new UDFException("udfId is Empty!");
}
+ String userName = ModuleUserUtils.getOperationUser(req, "set expire udf " + udfId);
+ if (StringUtils.isEmpty(userName)) {
+ throw new UDFException("UserName is Empty!");
+ }
+
verifyOperationUser(userName, udfId);
udfService.setUdfExpire(udfId, userName);
message = Message.ok();
@@ -333,7 +336,7 @@ public class UDFApi {
public Message shareUDF(HttpServletRequest req, @RequestBody JsonNode json) throws Throwable {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("UserName is Empty!");
}
@@ -382,7 +385,7 @@ public class UDFApi {
public Message getSharedUsers(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("UserName is Empty!");
}
@@ -408,15 +411,17 @@ public class UDFApi {
public Message handoverUDF(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
- if (StringUtils.isEmpty(userName)) {
- throw new UDFException("username is empty!");
- }
long udfId = json.get("udfId").longValue();
String handoverUser = json.get("handoverUser").textValue();
if (StringUtils.isEmpty(handoverUser)) {
throw new UDFException("The handover user can't be null!");
}
+ String userName =
+ ModuleUserUtils.getOperationUser(
+ req, String.join(",", "hand over udf", "" + udfId, handoverUser));
+ if (StringUtils.isEmpty(userName)) {
+ throw new UDFException("username is empty!");
+ }
UDFInfo udfInfo = verifyOperationUser(userName, udfId);
if (udfService.isUDFManager(udfInfo.getCreateUser())
&& !udfService.isUDFManager(handoverUser)) {
@@ -455,7 +460,7 @@ public class UDFApi {
public Message publishUDF(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
@@ -478,7 +483,7 @@ public class UDFApi {
public Message rollbackUDF(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
@@ -498,7 +503,7 @@ public class UDFApi {
public Message versionList(HttpServletRequest req, @RequestParam("udfId") long udfId) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
@@ -523,7 +528,7 @@ public class UDFApi {
public Message managerPages(HttpServletRequest req, @RequestBody JsonNode jsonNode) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
@@ -560,12 +565,13 @@ public class UDFApi {
public Message downloadUdf(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+
+ long udfId = json.get("udfId").longValue();
+ String version = json.get("version").textValue();
+ String userName = ModuleUserUtils.getOperationUser(req, "downloadUdf " + udfId);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
- long udfId = json.get("udfId").longValue();
- String version = json.get("version").textValue();
String content = udfService.downLoadUDF(udfId, version, userName);
message = Message.ok();
message.data("content", content);
@@ -585,12 +591,13 @@ public class UDFApi {
BufferedInputStream fis = null;
BufferedOutputStream outputStream = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+
+ long udfId = json.get("udfId").longValue();
+ String version = json.get("version").textValue();
+ String userName = ModuleUserUtils.getOperationUser(req, "downloadUdf " + udfId);
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
- long udfId = json.get("udfId").longValue();
- String version = json.get("version").textValue();
DownloadVo downloadVo = udfService.downloadToLocal(udfId, version, userName);
is = downloadVo.getInputStream();
fis = new BufferedInputStream(is);
@@ -633,7 +640,7 @@ public class UDFApi {
public Message allUdfUsers(HttpServletRequest req, @RequestBody JsonNode json) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "allUdfUsers ");
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
@@ -653,7 +660,7 @@ public class UDFApi {
HttpServletRequest req, @RequestParam("category") String category) {
Message message = null;
try {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "userDirectory ");
if (StringUtils.isEmpty(userName)) {
throw new UDFException("username is empty!");
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-variable/src/main/java/org/apache/linkis/variable/restful/api/VariableRestfulApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-variable/src/main/java/org/apache/linkis/variable/restful/api/VariableRestfulApi.java
index e6d0326..0ff83c6 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-variable/src/main/java/org/apache/linkis/variable/restful/api/VariableRestfulApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-variable/src/main/java/org/apache/linkis/variable/restful/api/VariableRestfulApi.java
@@ -18,7 +18,7 @@
package org.apache.linkis.variable.restful.api;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.linkis.variable.entity.VarKeyValueVO;
import org.apache.linkis.variable.exception.VariableException;
import org.apache.linkis.variable.service.VariableService;
@@ -70,7 +70,7 @@ public class VariableRestfulApi {
@RequestMapping(path = "listGlobalVariable", method = RequestMethod.GET)
public Message listGlobalVariable(HttpServletRequest req) {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "listGlobalVariable ");
List<VarKeyValueVO> kvs = variableService.listGlobalVariable(userName);
return Message.ok().data("globalVariables", kvs);
}
@@ -78,7 +78,7 @@ public class VariableRestfulApi {
@RequestMapping(path = "saveGlobalVariable", method = RequestMethod.POST)
public Message saveGlobalVariable(HttpServletRequest req, @RequestBody JsonNode json)
throws IOException, VariableException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req, "saveGlobalVariable ");
List<VarKeyValueVO> userVariables = variableService.listGlobalVariable(userName);
List globalVariables = mapper.treeToValue(json.get("globalVariables"), List.class);
variableService.saveGlobalVaraibles(globalVariables, userVariables, userName);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org