This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.3.1
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.3.1 by this push:
new df328096e [Feature-3838]Add necessary audit log for datasoure (#3839)
df328096e is described below
commit df328096e0bee0177719bc7bcfced49abce14d41
Author: Casion <[email protected]>
AuthorDate: Thu Nov 17 14:26:37 2022 +0800
[Feature-3838]Add necessary audit log for datasoure (#3839)
* Add some audit log for datasoure query (#26)
---
.../datasourcemanager/common/auth/AuthContext.java | 15 ---
.../core/restful/DataSourceCoreRestfulApi.java | 117 +++++++++++++--------
.../core/restful/DataSourceOperateRestfulApi.java | 4 +-
.../restful/DataSourceAdminRestfulApiTest.java | 47 +++++----
.../core/restful/DataSourceCoreRestfulApiTest.java | 99 +++++++++++------
.../query/server/restful/MetadataCoreRestful.java | 25 +++--
.../query/server/restful/MetadataQueryRestful.java | 27 +++--
.../server/restful/MetadataCoreRestfulTest.java | 85 ++++++++++++---
.../server/restful/MetadataQueryRestfulTest.java | 71 ++++++++++---
9 files changed, 326 insertions(+), 164 deletions(-)
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/auth/AuthContext.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/auth/AuthContext.java
index acb7f1c41..c37048393 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/auth/AuthContext.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/auth/AuthContext.java
@@ -19,12 +19,9 @@ package org.apache.linkis.datasourcemanager.common.auth;
import org.apache.linkis.common.conf.CommonVars;
import org.apache.linkis.datasourcemanager.common.domain.DataSource;
-import org.apache.linkis.server.security.SecurityFilter;
import org.apache.commons.lang3.StringUtils;
-import javax.servlet.http.HttpServletRequest;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -50,18 +47,6 @@ public class AuthContext {
}
}
- /**
- * If has permission of data source
- *
- * @param dataSource data source
- * @param request request
- * @return boolean
- */
- public static boolean hasPermission(DataSource dataSource,
HttpServletRequest request) {
- String username = SecurityFilter.getLoginUsername(request);
- return hasPermission(dataSource, username);
- }
-
public static boolean hasPermission(DataSource dataSource, String username) {
if (Objects.nonNull(dataSource)) {
String creator = dataSource.getCreateUser();
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
index 9eeefda38..52ab4ff49 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
@@ -18,6 +18,7 @@
package org.apache.linkis.datasourcemanager.core.restful;
import org.apache.linkis.common.exception.ErrorException;
+import org.apache.linkis.datasourcemanager.common.ServiceErrorCode;
import org.apache.linkis.datasourcemanager.common.auth.AuthContext;
import org.apache.linkis.datasourcemanager.common.domain.DataSource;
import
org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition;
@@ -35,15 +36,11 @@ import
org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
import org.apache.linkis.datasourcemanager.core.vo.DataSourceVo;
import org.apache.linkis.metadata.query.common.MdmConfiguration;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
+import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
@@ -52,15 +49,6 @@ import javax.validation.ConstraintViolationException;
import javax.validation.Validator;
import javax.validation.groups.Default;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
@@ -70,6 +58,9 @@ import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.UnsupportedEncodingException;
+import java.util.*;
+
import static
org.apache.linkis.datasourcemanager.common.errorcode.LinkisDatasourceManagerErrorCodeSummary.DATASOURCE_NOT_FOUND;
@Api(tags = "data source core restful api")
@@ -80,6 +71,7 @@ import static
org.apache.linkis.datasourcemanager.common.errorcode.LinkisDatasou
public class DataSourceCoreRestfulApi {
private static final Logger LOG =
LoggerFactory.getLogger(DataSourceCoreRestfulApi.class);
+
@Autowired private DataSourceInfoService dataSourceInfoService;
@Autowired private DataSourceRelateService dataSourceRelateService;
@@ -101,9 +93,10 @@ public class DataSourceCoreRestfulApi {
@ApiOperation(value = "getAllDataSourceTypes", notes = "get all data
source types", response = Message.class)
@RequestMapping(value = "/type/all", method = RequestMethod.GET)
- public Message getAllDataSourceTypes() {
+ public Message getAllDataSourceTypes(HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "getAllDataSourceTypes");
List<DataSourceType> dataSourceTypes =
dataSourceRelateService.getAllDataSourceTypes();
return Message.ok().data("typeList", dataSourceTypes);
@@ -117,12 +110,13 @@ public class DataSourceCoreRestfulApi {
})
@RequestMapping(value = "/key-define/type/{typeId}", method =
RequestMethod.GET)
public Message getKeyDefinitionsByType(
- @PathVariable("typeId") Long dataSourceTypeId, HttpServletRequest
req) {
+ @PathVariable("typeId") Long dataSourceTypeId, HttpServletRequest
request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "getKeyDefinitionsByType");
List<DataSourceParamKeyDefinition> keyDefinitions =
dataSourceRelateService.getKeyDefinitionsByType(
- dataSourceTypeId,
req.getHeader("Content-Language"));
+ dataSourceTypeId,
request.getHeader("Content-Language"));
return Message.ok().data("keyDefine", keyDefinitions);
},
"Fail to get key definitions of data source
type[查询数据源参数键值对失败]");
@@ -144,10 +138,12 @@ public class DataSourceCoreRestfulApi {
@ApiImplicitParam(name = "username", required = false, dataType =
"String", value = "user name")
})
@RequestMapping(value = "/info/json", method = RequestMethod.POST)
- public Message insertJsonInfo(@RequestBody DataSource dataSource,
HttpServletRequest req) {
+ public Message insertJsonInfo(@RequestBody DataSource dataSource,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
- String userName = SecurityFilter.getLoginUsername(req);
+
+ String userName =
ModuleUserUtils.getOperationUser(request, "insertJsonInfo");
+
// Bean validation
Set<ConstraintViolation<DataSource>> result =
beanValidator.validate(dataSource, Default.class);
@@ -197,10 +193,10 @@ public class DataSourceCoreRestfulApi {
public Message updateDataSourceInJson(
@RequestBody DataSource dataSource,
@PathVariable("dataSourceId") Long dataSourceId,
- HttpServletRequest req) {
+ HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName =
ModuleUserUtils.getOperationUser(request, "updateDataSourceInJson");
// Bean validation
Set<ConstraintViolation<DataSource>> result =
beanValidator.validate(dataSource, Default.class);
@@ -247,7 +243,7 @@ public class DataSourceCoreRestfulApi {
* create or update parameter, save a version of parameter,return version
id.
*
* @param params
- * @param req
+ * @param request
* @return
*/
@ApiOperation(value = "insertJsonParameter", notes = "insert json
parameter", response = Message.class)
@@ -259,12 +255,14 @@ public class DataSourceCoreRestfulApi {
public Message insertJsonParameter(
@PathVariable("dataSourceId") Long dataSourceId,
@RequestBody() Map<String, Object> params,
- HttpServletRequest req) {
+ HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "insertJsonParameter");
+
Map<String, Object> connectParams = (Map)
params.get("connectParams");
String comment = params.get("comment").toString();
- String userName = SecurityFilter.getLoginUsername(req);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
@@ -313,11 +311,13 @@ public class DataSourceCoreRestfulApi {
@PathVariable("dataSourceId") Long dataSourceId,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "getInfoByDataSourceId
dataSourceId:"+dataSourceId);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfo(dataSourceId);
if (dataSource == null) {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have query permission for data source
[没有数据源的查询权限]");
}
@@ -341,13 +341,16 @@ public class DataSourceCoreRestfulApi {
throws UnsupportedEncodingException {
return RestfulApiHelper.doAndResponse(
() -> {
+
+ String userName =
ModuleUserUtils.getOperationUser(request, "getInfoByDataSourceName
dataSourceName:"+dataSourceName);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfo(dataSourceName);
if (dataSource == null) {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have query permission for data source
[没有数据源的查询权限]");
}
@@ -373,13 +376,16 @@ public class DataSourceCoreRestfulApi {
throws UnsupportedEncodingException {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName = ModuleUserUtils.getOperationUser(request,
"getPublishedInfoByDataSourceName dataSourceName:"+dataSourceName);
+
+
DataSource dataSource =
dataSourceInfoService.getDataSourcePublishInfo(dataSourceName);
if (dataSource == null) {
return Message.error("No Exists The DataSource [不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have query permission for data source
[没有数据源的查询权限]");
}
@@ -414,6 +420,8 @@ public class DataSourceCoreRestfulApi {
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "getInfoByDataSourceIdAndVersion
dataSourceId:"+dataSourceId);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfo(dataSourceId, version);
@@ -421,7 +429,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have query permission for data source
[没有数据源的查询权限]");
}
@@ -451,6 +459,8 @@ public class DataSourceCoreRestfulApi {
@PathVariable("dataSourceId") Long dataSourceId,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "getVersionList
dataSourceId:"+dataSourceId);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
@@ -458,7 +468,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have query permission for data source
[没有数据源的查询权限]");
}
@@ -491,6 +501,8 @@ public class DataSourceCoreRestfulApi {
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "publishByDataSourceId
dataSourceId:"+dataSourceId);
+
// Get brief info
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
@@ -499,7 +511,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have publish permission for data source
[没有数据源的发布权限]");
}
@@ -528,6 +540,8 @@ public class DataSourceCoreRestfulApi {
@PathVariable("dataSourceId") Long dataSourceId,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "removeDataSource
dataSourceId:"+dataSourceId);
+
// Get brief info
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
@@ -536,7 +550,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have delete permission for data source
[没有数据源的删除权限]");
}
@@ -559,6 +573,8 @@ public class DataSourceCoreRestfulApi {
@PathVariable("dataSourceId") Long dataSourceId,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "expireDataSource
dataSourceId:"+dataSourceId);
+
// Get brief info
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
@@ -567,7 +583,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, request)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have operation permission for data
source [没有数据源的操作权限]");
}
@@ -585,7 +601,7 @@ public class DataSourceCoreRestfulApi {
* get datasource connect params for publish version
*
* @param dataSourceId
- * @param req
+ * @param request
* @return
*/
@ApiOperation(value = "getConnectParams(dataSourceId)", notes = "get
connect params(dataSourceId)", response = Message.class)
@@ -594,9 +610,11 @@ public class DataSourceCoreRestfulApi {
})
@RequestMapping(value = "/{dataSourceId}/connect-params", method =
RequestMethod.GET)
public Message getConnectParams(
- @PathVariable("dataSourceId") Long dataSourceId,
HttpServletRequest req) {
+ @PathVariable("dataSourceId") Long dataSourceId,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String userName =
ModuleUserUtils.getOperationUser(request, "getConnectParams
dataSourceId:"+dataSourceId);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoForConnect(dataSourceId);
@@ -604,7 +622,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, req)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have query permission for data source
[没有数据源的查询权限]");
}
@@ -624,10 +642,13 @@ public class DataSourceCoreRestfulApi {
})
@RequestMapping(value = "/name/{dataSourceName}/connect-params", method =
RequestMethod.GET)
public Message getConnectParams(
- @PathVariable("dataSourceName") String dataSourceName,
HttpServletRequest req)
+ @PathVariable("dataSourceName") String dataSourceName,
HttpServletRequest request)
throws UnsupportedEncodingException {
return RestfulApiHelper.doAndResponse(
() -> {
+
+ String userName =
ModuleUserUtils.getOperationUser(request, "getConnectParams
dataSourceName:"+dataSourceName);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoForConnect(dataSourceName);
@@ -635,7 +656,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, req)) {
+ if (!AuthContext.hasPermission(dataSource, userName)) {
return Message.error(
"Don't have query permission for data source
[没有数据源的查询权限]");
}
@@ -658,10 +679,11 @@ public class DataSourceCoreRestfulApi {
public Message connectDataSource(
@PathVariable("dataSourceId") Long dataSourceId,
@PathVariable("version") Long version,
- HttpServletRequest req) {
+ HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
- String operator = SecurityFilter.getLoginUsername(req);
+ String operator =
ModuleUserUtils.getOperationUser(request, "connectDataSource
dataSourceId:"+dataSourceId);
+
DataSource dataSource =
dataSourceInfoService.getDataSourceInfoForConnect(
dataSourceId, version);
@@ -669,7 +691,7 @@ public class DataSourceCoreRestfulApi {
return Message.error("No Exists The DataSource
[不存在该数据源]");
}
- if (!AuthContext.hasPermission(dataSource, req)) {
+ if (!AuthContext.hasPermission(dataSource, operator)) {
return Message.error(
"Don't have operation permission for data
source [没有数据源的操作权限]");
}
@@ -706,9 +728,12 @@ public class DataSourceCoreRestfulApi {
@RequestMapping(value = "/info/ids", method = RequestMethod.GET)
public Message queryDataSource(
@RequestParam(value = "ids") String idsJson
- , HttpServletRequest req) {
+ , HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+
+ String userName =
ModuleUserUtils.getOperationUser(request, "queryDataSourceByIds ids:"+idsJson);
+
List ids = new ObjectMapper().readValue(idsJson,
List.class);
List<DataSource> dataSourceList =
dataSourceInfoService.queryDataSourceInfo(ids);
return Message.ok()
@@ -735,15 +760,17 @@ public class DataSourceCoreRestfulApi {
@RequestParam(value = "identifies", required = false) String
identifies,
@RequestParam(value = "currentPage", required = false) Integer
currentPage,
@RequestParam(value = "pageSize", required = false) Integer
pageSize,
- HttpServletRequest req) {
+ HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
+ String permissionUser =
ModuleUserUtils.getOperationUser(request, "queryDataSource");
+
DataSourceVo dataSourceVo =
new DataSourceVo(
dataSourceName, dataSourceTypeId,
identifies, createSystem);
dataSourceVo.setCurrentPage(null != currentPage ?
currentPage : 1);
dataSourceVo.setPageSize(null != pageSize ? pageSize : 10);
- String permissionUser =
SecurityFilter.getLoginUsername(req);
+
if (AuthContext.isAdministrator(permissionUser)) {
permissionUser = null;
}
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
index 30ab359f4..28c6ace62 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
@@ -31,8 +31,8 @@ import
org.apache.linkis.datasourcemanager.core.validate.ParameterValidateExcept
import org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
import org.apache.linkis.metadata.query.common.MdmConfiguration;
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;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -89,7 +89,7 @@ public class DataSourceOperateRestfulApi {
public Message connect(@RequestBody DataSource dataSource,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
- String operator = SecurityFilter.getLoginUsername(request);
+ String operator =
ModuleUserUtils.getOperationUser(request, "do connect");
// Bean validation
Set<ConstraintViolation<DataSource>> result =
beanValidator.validate(dataSource, Default.class);
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
index 70d035075..d383d4dbd 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
@@ -25,8 +25,7 @@ import
org.apache.linkis.datasourcemanager.core.service.DataSourceInfoService;
import org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.MessageStatus;
-import org.apache.linkis.server.conf.ServerConfiguration;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.apache.commons.collections.CollectionUtils;
@@ -41,7 +40,9 @@ import javax.servlet.http.HttpServletRequest;
import javax.validation.Validator;
import java.io.StringWriter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
@@ -52,7 +53,7 @@ import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.isA;
@@ -72,18 +73,16 @@ class DataSourceAdminRestfulApiTest {
@MockBean private DataSourceInfoService dataSourceInfoService;
- private static MockedStatic<SecurityFilter> securityFilter;
- @MockBean private ServerConfiguration serverConfiguration;
+ private static MockedStatic<ModuleUserUtils> moduleUserUtils;
@BeforeAll
private static void init() {
- System.setProperty("wds.linkis.server.version", "v1");
- securityFilter = Mockito.mockStatic(SecurityFilter.class);
+ moduleUserUtils = Mockito.mockStatic(ModuleUserUtils.class);
}
@AfterAll
private static void close() {
- securityFilter.close();
+ moduleUserUtils.close();
}
@Test
@@ -95,8 +94,10 @@ class DataSourceAdminRestfulApiTest {
dataSourceEnv.setId(dataSourceEnvId);
StringWriter dsJsonWriter = new StringWriter();
JsonUtils.jackson().writeValue(dsJsonWriter, dataSourceEnv);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser", "hadoop");
Message mvcResult =
mvcUtils.getMessage(mvcUtils.buildMvcResultPost(url,
dsJsonWriter.toString()));
@@ -125,8 +126,10 @@ class DataSourceAdminRestfulApiTest {
dataSourceEnvList.add(dataSourceEnv);
StringWriter dsJsonWriter = new StringWriter();
JsonUtils.jackson().writeValue(dsJsonWriter, dataSourceEnvList);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser", "hadoop");
Message mvcResult =
mvcUtils.getMessage(mvcUtils.buildMvcResultPost(url + fromSystem,
dsJsonWriter.toString()));
@@ -161,8 +164,10 @@ class DataSourceAdminRestfulApiTest {
JsonUtils.jackson().writeValue(dsJsonWriter, dataSourceEnvList);
MvcUtils mvcUtils = new MvcUtils(mockMvc);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser", "hadoop");
Message mvcResult =
mvcUtils.getMessage(mvcUtils.buildMvcResultPut(url + fromSystem,
dsJsonWriter.toString()));
@@ -219,8 +224,10 @@ class DataSourceAdminRestfulApiTest {
long dataSourceEnvId = 10l;
String url = String.format("/data-source-manager/env/%s", dataSourceEnvId);
MvcUtils mvcUtils = new MvcUtils(mockMvc);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser", "hadoop");
Message mvcResult =
mvcUtils.getMessage(mvcUtils.buildMvcResultDelete(url));
assertTrue(
@@ -246,8 +253,10 @@ class DataSourceAdminRestfulApiTest {
JsonUtils.jackson().writeValue(dsJsonWriter, dataSourceEnv);
MvcUtils mvcUtils = new MvcUtils(mockMvc);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser", "hadoop");
Message mvcResult =
mvcUtils.getMessage(mvcUtils.buildMvcResultPut(url,
dsJsonWriter.toString()));
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
index 35ea7d122..2a4a9e933 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
@@ -30,7 +30,8 @@ import
org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
import org.apache.linkis.datasourcemanager.core.vo.DataSourceVo;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.MessageStatus;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.conf.ServerConfiguration;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
@@ -52,6 +53,7 @@ import java.util.*;
import com.github.pagehelper.PageInfo;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockedStatic;
@@ -62,7 +64,8 @@ import org.slf4j.LoggerFactory;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.isA;
@ExtendWith({SpringExtension.class})
@AutoConfigureMockMvc
@@ -83,18 +86,23 @@ class DataSourceCoreRestfulApiTest {
@MockBean MetadataOperateService metadataOperateService;
- private static MockedStatic<SecurityFilter> securityFilter;
+ @MockBean private ServerConfiguration serverConfiguration;
+
+ private static MockedStatic<ModuleUserUtils> moduleUserUtils;
@BeforeAll
private static void init() {
- securityFilter = Mockito.mockStatic(SecurityFilter.class);
+ moduleUserUtils = Mockito.mockStatic(ModuleUserUtils.class);
}
@AfterAll
private static void close() {
- securityFilter.close();
+ moduleUserUtils.close();
}
+ @BeforeEach
+ public void setUp() {}
+
@Test
void getAllDataSourceTypes() throws Exception {
MvcUtils mvcUtils = new MvcUtils(mockMvc);
@@ -152,8 +160,10 @@ class DataSourceCoreRestfulApiTest {
dataSource.setDataSourceName("ds-hive");
StringWriter dsJsonWriter = new StringWriter();
JsonUtils.jackson().writeValue(dsJsonWriter, dataSource);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultPut(url,
dsJsonWriter.toString()));
assertTrue(
@@ -194,8 +204,10 @@ class DataSourceCoreRestfulApiTest {
StringWriter dsJsonWriter = new StringWriter();
JsonUtils.jackson().writeValue(dsJsonWriter, params);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultPost(url,
dsJsonWriter.toString()));
assertTrue(
@@ -240,8 +252,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url));
@@ -269,8 +283,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url));
@@ -300,10 +316,13 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
+
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url));
assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -329,8 +348,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url));
@@ -360,8 +381,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultPost(url));
@@ -396,8 +419,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultDelete(url));
@@ -433,8 +458,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultPut(url));
@@ -470,8 +497,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url));
@@ -499,8 +528,10 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("No Exists The DataSource"));
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser")
.thenReturn("hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url));
@@ -525,9 +556,11 @@ class DataSourceCoreRestfulApiTest {
DataSourceType dataSourceType = new DataSourceType();
dataSourceType.setName("hive");
dataSource.setDataSourceType(dataSourceType);
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
- .thenReturn("testUser", "testUser", "testUser", "hadoop");
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
+ .thenReturn("testUser", "testUser", "hadoop");
Mockito.when(dataSourceInfoService.getDataSourceInfoForConnect(dataSourceId,
version))
.thenReturn(null)
.thenReturn(dataSource);
@@ -556,8 +589,10 @@ class DataSourceCoreRestfulApiTest {
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.add("currentPage", "10");
params.add("pageSize", "20");
- securityFilter
- .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
.thenReturn("testUser");
DataSourceVo dataSourceVo = new DataSourceVo();
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestful.java
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestful.java
index c454918bc..50e667324 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestful.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestful.java
@@ -25,10 +25,10 @@ import
org.apache.linkis.metadata.query.common.exception.MetaMethodInvokeExcepti
import org.apache.linkis.metadata.query.server.service.MetadataQueryService;
import org.apache.linkis.metadata.query.server.utils.MetadataUtils;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
import org.apache.commons.lang3.StringUtils;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -62,10 +62,10 @@ public class MetadataCoreRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceId).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
-
+ String userName = ModuleUserUtils.getOperationUser(request,
"getDatabases, dataSourceId:" + dataSourceId);
List<String> databases =
metadataAppService.getDatabasesByDsId(
- dataSourceId, system,
SecurityFilter.getLoginUsername(request));
+ dataSourceId, system, userName);
return Message.ok().data("dbs", databases);
} catch (Exception e) {
return errorToResponseMessage(
@@ -94,12 +94,13 @@ public class MetadataCoreRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceId).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
+ String userName = ModuleUserUtils.getOperationUser(request,
"getTables, dataSourceId:" + dataSourceId);
List<String> tables =
metadataAppService.getTablesByDsId(
dataSourceId,
database,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("tables", tables);
} catch (Exception e) {
return errorToResponseMessage(
@@ -137,14 +138,14 @@ public class MetadataCoreRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceId).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
-
+ String userName = ModuleUserUtils.getOperationUser(request,
"getTableProps, dataSourceId:" + dataSourceId);
Map<String, String> tableProps =
metadataAppService.getTablePropsByDsId(
dataSourceId,
database,
table,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("props", tableProps);
} catch (Exception e) {
return errorToResponseMessage(
@@ -187,6 +188,7 @@ public class MetadataCoreRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceId).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
+ String userName = ModuleUserUtils.getOperationUser(request,
"getPartitions, dataSourceId:" + dataSourceId);
MetaPartitionInfo partitionInfo =
metadataAppService.getPartitionsByDsId(
dataSourceId,
@@ -194,7 +196,7 @@ public class MetadataCoreRestful {
table,
system,
traverse,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("props", partitionInfo);
} catch (Exception e) {
return errorToResponseMessage(
@@ -238,6 +240,7 @@ public class MetadataCoreRestful {
if (!MetadataUtils.nameRegexPattern.matcher(partition).matches()) {
return Message.error("'partition' is invalid[partition错误]");
}
+ String userName = ModuleUserUtils.getOperationUser(request,
"getPartitionProps, dataSourceId:" + dataSourceId);
Map<String, String> partitionProps =
metadataAppService.getPartitionPropsByDsId(
dataSourceId,
@@ -245,7 +248,7 @@ public class MetadataCoreRestful {
table,
partition,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("props", partitionProps);
} catch (Exception e) {
return errorToResponseMessage(
@@ -287,13 +290,15 @@ public class MetadataCoreRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceId).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
- List<MetaColumnInfo> columns =
+
+ String userName = ModuleUserUtils.getOperationUser(request,
"getColumns, dataSourceId:" + dataSourceId);
+ List<MetaColumnInfo> columns =
metadataAppService.getColumnsByDsId(
dataSourceId,
database,
table,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("columns", columns);
} catch (Exception e) {
return errorToResponseMessage(
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 0699bf346..004cdab3a 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
@@ -25,10 +25,11 @@ import
org.apache.linkis.metadata.query.common.exception.MetaMethodInvokeExcepti
import org.apache.linkis.metadata.query.server.service.MetadataQueryService;
import org.apache.linkis.metadata.query.server.utils.MetadataUtils;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
+
import org.apache.commons.lang3.StringUtils;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -63,11 +64,12 @@ public class MetadataQueryRestful {
if (StringUtils.isBlank(system)){
return Message.error("'system' is missing[缺少系统名]");
}
+ String userName=ModuleUserUtils.getOperationUser(request,
"getConnectionInfo, dataSourceName:" + dataSourceName);
Map<String, String> queryParams =
request.getParameterMap().entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey,
entry -> StringUtils.join(entry.getValue(), ",")));
Map<String, String> info =
metadataQueryService.getConnectionInfoByDsName(dataSourceName, queryParams,
- system, SecurityFilter.getLoginUsername(request));
+ system, userName);
return Message.ok().data("info", info);
} catch (Exception e){
return errorToResponseMessage(
@@ -97,9 +99,10 @@ public class MetadataQueryRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
+ String userName=ModuleUserUtils.getOperationUser(request,
"getDatabases, dataSourceName:" + dataSourceName);
List<String> databases =
metadataQueryService.getDatabasesByDsName(
- dataSourceName, system,
SecurityFilter.getLoginUsername(request));
+ dataSourceName, system, userName);
return Message.ok().data("dbs", databases);
} catch (Exception e) {
return errorToResponseMessage(
@@ -134,12 +137,13 @@ public class MetadataQueryRestful {
if (!MetadataUtils.nameRegexPattern.matcher(database).matches()) {
return Message.error("'database' is invalid[数据库名称错误]");
}
+ String userName=ModuleUserUtils.getOperationUser(request,
"getTables, dataSourceName:" + dataSourceName);
List<String> tables =
metadataQueryService.getTablesByDsName(
dataSourceName,
database,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("tables", tables);
} catch (Exception e) {
return errorToResponseMessage(
@@ -182,13 +186,14 @@ public class MetadataQueryRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
+ String userName=ModuleUserUtils.getOperationUser(request,
"getTableProps, dataSourceName:" + dataSourceName);
Map<String, String> tableProps =
metadataQueryService.getTablePropsByDsName(
dataSourceName,
database,
table,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("props", tableProps);
} catch (Exception e) {
return errorToResponseMessage(
@@ -235,6 +240,8 @@ public class MetadataQueryRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
+
+ String userName=ModuleUserUtils.getOperationUser(request,
"getPartitions, dataSourceName:" + dataSourceName);
MetaPartitionInfo partitionInfo =
metadataQueryService.getPartitionsByDsName(
dataSourceName,
@@ -242,7 +249,7 @@ public class MetadataQueryRestful {
table,
system,
traverse,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("partitions", partitionInfo);
} catch (Exception e) {
return errorToResponseMessage(
@@ -292,6 +299,7 @@ public class MetadataQueryRestful {
if (!MetadataUtils.nameRegexPattern.matcher(partition).matches()) {
return Message.error("'partition' is invalid[partition错误]");
}
+ String userName = ModuleUserUtils.getOperationUser(request,
"getPartitionProps, dataSourceName:" + dataSourceName);
Map<String, String> partitionProps =
metadataQueryService.getPartitionPropsByDsName(
dataSourceName,
@@ -299,7 +307,7 @@ public class MetadataQueryRestful {
table,
partition,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("props", partitionProps);
} catch (Exception e) {
return errorToResponseMessage(
@@ -346,13 +354,16 @@ public class MetadataQueryRestful {
if
(!MetadataUtils.nameRegexPattern.matcher(dataSourceName).matches()) {
return Message.error("'dataSourceId' is invalid[数据源错误]");
}
+
+ String userName=ModuleUserUtils.getOperationUser(request,
"getColumns, dataSourceName:" + dataSourceName);
+
List<MetaColumnInfo> columns =
metadataQueryService.getColumnsByDsName(
dataSourceName,
database,
table,
system,
- SecurityFilter.getLoginUsername(request));
+ userName);
return Message.ok().data("columns", columns);
} catch (Exception e) {
return errorToResponseMessage(
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestfulTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestfulTest.java
index c77dd2ac9..8332e39e6 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestfulTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataCoreRestfulTest.java
@@ -23,7 +23,7 @@ import
org.apache.linkis.metadata.query.server.WebApplicationServer;
import org.apache.linkis.metadata.query.server.service.MetadataQueryService;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.MessageStatus;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
@@ -34,6 +34,8 @@ import org.springframework.test.web.servlet.MockMvc;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
+import javax.servlet.http.HttpServletRequest;
+
import java.util.ArrayList;
import java.util.HashMap;
@@ -45,6 +47,8 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
+import static org.mockito.ArgumentMatchers.isA;
+
@ExtendWith({SpringExtension.class})
@AutoConfigureMockMvc
@SpringBootTest(classes = {WebApplicationServer.class})
@@ -54,18 +58,18 @@ class MetadataCoreRestfulTest {
@MockBean private MetadataQueryService metadataQueryService;
- private static MockedStatic<SecurityFilter> securityFilter;
-
private static String system = "linkis";
+ private static MockedStatic<ModuleUserUtils> moduleUserUtils;
+
@BeforeAll
private static void init() {
- securityFilter = Mockito.mockStatic(SecurityFilter.class);
+ moduleUserUtils = Mockito.mockStatic(ModuleUserUtils.class);
}
@AfterAll
private static void close() {
- securityFilter.close();
+ moduleUserUtils.close();
}
@Test
@@ -76,19 +80,27 @@ class MetadataCoreRestfulTest {
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
+
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("'system' is missing"));
params.set("system", system);
- Mockito.when(metadataQueryService.getDatabasesByDsId(dataSourceId,
system, null))
+ Mockito.when(metadataQueryService.getDatabasesByDsId(dataSourceId,
system, "hadoop"))
.thenReturn(new ArrayList<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getDatabasesByDsId(dataSourceId, system, null);
+ .getDatabasesByDsId(dataSourceId, system, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -107,20 +119,26 @@ class MetadataCoreRestfulTest {
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
+
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("'system' is missing"));
params.set("system", system);
- Mockito.when(metadataQueryService.getTablesByDsId(dataSourceId, database,
system, null))
+ Mockito.when(metadataQueryService.getTablesByDsId(dataSourceId, database,
system, "hadoop"))
.thenReturn(new ArrayList<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getTablesByDsId(dataSourceId, database, system, null);
+ .getTablesByDsId(dataSourceId, database, system, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -138,6 +156,14 @@ class MetadataCoreRestfulTest {
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
+
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -145,14 +171,15 @@ class MetadataCoreRestfulTest {
params.set("system", system);
Mockito.when(
- metadataQueryService.getTablePropsByDsId(dataSourceId, database,
table, system, null))
+ metadataQueryService.getTablePropsByDsId(
+ dataSourceId, database, table, system, "hadoop"))
.thenReturn(new HashMap<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getTablePropsByDsId(dataSourceId, database, table, system, null);
+ .getTablePropsByDsId(dataSourceId, database, table, system,
"hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -174,6 +201,13 @@ class MetadataCoreRestfulTest {
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
+
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -182,14 +216,14 @@ class MetadataCoreRestfulTest {
params.set("system", system);
Mockito.when(
metadataQueryService.getPartitionsByDsId(
- dataSourceId, database, table, system, false, null))
+ dataSourceId, database, table, system, false, "hadoop"))
.thenReturn(new MetaPartitionInfo());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getPartitionsByDsId(dataSourceId, database, table, system, false,
null);
+ .getPartitionsByDsId(dataSourceId, database, table, system, false,
"hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -216,6 +250,14 @@ class MetadataCoreRestfulTest {
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
+
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -224,14 +266,14 @@ class MetadataCoreRestfulTest {
params.set("system", system);
Mockito.when(
metadataQueryService.getPartitionPropsByDsId(
- dataSourceId, database, table, partition, system, null))
+ dataSourceId, database, table, partition, system, "hadoop"))
.thenReturn(new HashMap<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getPartitionPropsByDsId(dataSourceId, database, table, partition,
system, null);
+ .getPartitionPropsByDsId(dataSourceId, database, table, partition,
system, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -253,6 +295,14 @@ class MetadataCoreRestfulTest {
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
+
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -260,14 +310,15 @@ class MetadataCoreRestfulTest {
params.set("system", system);
Mockito.when(
- metadataQueryService.getColumnsByDsId(dataSourceId, database,
table, system, null))
+ metadataQueryService.getColumnsByDsId(
+ dataSourceId, database, table, system, "hadoop"))
.thenReturn(new ArrayList<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getColumnsByDsId(dataSourceId, database, table, system, null);
+ .getColumnsByDsId(dataSourceId, database, table, system, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestfulTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestfulTest.java
index 4b94687f5..56cff3470 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestfulTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/test/java/org/apache/linkis/metadata/query/server/restful/MetadataQueryRestfulTest.java
@@ -23,7 +23,7 @@ import
org.apache.linkis.metadata.query.server.WebApplicationServer;
import org.apache.linkis.metadata.query.server.service.MetadataQueryService;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.MessageStatus;
-import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
@@ -34,6 +34,8 @@ import org.springframework.test.web.servlet.MockMvc;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
+import javax.servlet.http.HttpServletRequest;
+
import java.util.ArrayList;
import java.util.HashMap;
@@ -45,6 +47,8 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
+import static org.mockito.ArgumentMatchers.isA;
+
@ExtendWith({SpringExtension.class})
@AutoConfigureMockMvc
@SpringBootTest(classes = {WebApplicationServer.class})
@@ -54,16 +58,16 @@ class MetadataQueryRestfulTest {
@MockBean private MetadataQueryService metadataQueryService;
- private static MockedStatic<SecurityFilter> securityFilter;
+ private static MockedStatic<ModuleUserUtils> moduleUserUtils;
@BeforeAll
private static void init() {
- securityFilter = Mockito.mockStatic(SecurityFilter.class);
+ moduleUserUtils = Mockito.mockStatic(ModuleUserUtils.class);
}
@AfterAll
private static void close() {
- securityFilter.close();
+ moduleUserUtils.close();
}
String dataSourceName = "test";
@@ -80,19 +84,25 @@ class MetadataQueryRestfulTest {
params.set("dataSourceName", dataSourceName);
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("'system' is missing"));
params.set("system", system);
- Mockito.when(metadataQueryService.getDatabasesByDsName(dataSourceName,
system, null))
+ Mockito.when(metadataQueryService.getDatabasesByDsName(dataSourceName,
system, "hadoop"))
.thenReturn(new ArrayList<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getDatabasesByDsName(dataSourceName, system, null);
+ .getDatabasesByDsName(dataSourceName, system, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
@@ -113,20 +123,25 @@ class MetadataQueryRestfulTest {
params.set("dataSourceName", dataSourceName);
params.set("database", database);
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+
ModuleUserUtils.getOperationUser(isA(HttpServletRequest.class),
isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
&& res.getMessage().contains("'system' is missing"));
params.set("system", system);
- Mockito.when(metadataQueryService.getTablesByDsName(dataSourceName,
database, system, null))
+ Mockito.when(metadataQueryService.getTablesByDsName(dataSourceName,
database, system, "hadoop"))
.thenReturn(new ArrayList<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getTablesByDsName(dataSourceName, database, system, null);
+ .getTablesByDsName(dataSourceName, database, system, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -145,6 +160,12 @@ class MetadataQueryRestfulTest {
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -153,14 +174,14 @@ class MetadataQueryRestfulTest {
params.set("system", system);
Mockito.when(
metadataQueryService.getTablePropsByDsName(
- dataSourceName, database, table, system, null))
+ dataSourceName, database, table, system, "hadoop"))
.thenReturn(new HashMap<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getTablePropsByDsName(dataSourceName, database, table, system,
null);
+ .getTablePropsByDsName(dataSourceName, database, table, system,
"hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -181,6 +202,12 @@ class MetadataQueryRestfulTest {
params.set("table", table);
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -189,14 +216,14 @@ class MetadataQueryRestfulTest {
params.set("system", system);
Mockito.when(
metadataQueryService.getPartitionsByDsName(
- dataSourceName, database, table, system, false, null))
+ dataSourceName, database, table, system, false, "hadoop"))
.thenReturn(new MetaPartitionInfo());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getPartitionsByDsName(dataSourceName, database, table, system,
false, null);
+ .getPartitionsByDsName(dataSourceName, database, table, system,
false, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -220,6 +247,12 @@ class MetadataQueryRestfulTest {
params.set("partition", partition);
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -228,14 +261,14 @@ class MetadataQueryRestfulTest {
params.set("system", system);
Mockito.when(
metadataQueryService.getPartitionPropsByDsName(
- dataSourceName, database, table, partition, system, null))
+ dataSourceName, database, table, partition, system,
"hadoop"))
.thenReturn(new HashMap<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getPartitionPropsByDsName(dataSourceName, database, table,
partition, system, null);
+ .getPartitionPropsByDsName(dataSourceName, database, table,
partition, system, "hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -256,6 +289,12 @@ class MetadataQueryRestfulTest {
params.set("table", table);
params.set("system", "");
MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ moduleUserUtils
+ .when(
+ () ->
+ ModuleUserUtils.getOperationUser(
+ isA(HttpServletRequest.class), isA(String.class)))
+ .thenReturn("hadoop", "hadoop", "hadoop");
Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url,
params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
@@ -264,14 +303,14 @@ class MetadataQueryRestfulTest {
params.set("system", system);
Mockito.when(
metadataQueryService.getColumnsByDsName(
- dataSourceName, database, table, system, null))
+ dataSourceName, database, table, system, "hadoop"))
.thenReturn(new ArrayList<>());
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(MessageStatus.SUCCESS() == res.getStatus());
Mockito.doThrow(new ErrorException(1, ""))
.when(metadataQueryService)
- .getColumnsByDsName(dataSourceName, database, table, system, null);
+ .getColumnsByDsName(dataSourceName, database, table, system,
"hadoop");
res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
Assertions.assertTrue(
MessageStatus.ERROR() == res.getStatus()
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]