资源池加密
This commit is contained in:
parent
23d759ba59
commit
0b07295948
|
@ -1,13 +0,0 @@
|
||||||
package io.metersphere.base.mapper.ext;
|
|
||||||
|
|
||||||
import io.metersphere.controller.request.resourcepool.QueryResourcePoolRequest;
|
|
||||||
import io.metersphere.dto.TestResourcePoolDTO;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface ExtTestReourcePoolMapper {
|
|
||||||
List<TestResourcePoolDTO> listResourcePools(@Param("request") QueryResourcePoolRequest request);
|
|
||||||
|
|
||||||
// List<TestResource> listResourcesByPoolId(@Param("poolId") String poolId);
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
|
||||||
<mapper namespace="io.metersphere.base.mapper.ext.ExtTestReourcePoolMapper">
|
|
||||||
|
|
||||||
<resultMap id="TestReourcePoolResultMap" type="io.metersphere.dto.TestResourcePoolDTO">
|
|
||||||
<id column="id" jdbcType="VARCHAR" property="id"/>
|
|
||||||
<result column="name" jdbcType="VARCHAR" property="name"/>
|
|
||||||
<result column="type" jdbcType="VARCHAR" property="type"/>
|
|
||||||
<result column="description" jdbcType="VARCHAR" property="description"/>
|
|
||||||
<result column="status" jdbcType="VARCHAR" property="status"/>
|
|
||||||
<result column="create_time" jdbcType="BIGINT" property="createTime"/>
|
|
||||||
<result column="update_time" jdbcType="BIGINT" property="updateTime"/>
|
|
||||||
|
|
||||||
<collection property="resources" column="id" ofType="io.metersphere.base.domain.TestResource"
|
|
||||||
select="io.metersphere.base.mapper.ext.ExtTestReourcePoolMapper.listResourcesByPoolId">
|
|
||||||
|
|
||||||
</collection>
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<select id="listResourcePools" resultMap="TestReourcePoolResultMap">
|
|
||||||
SELECT * FROM test_resource_pool
|
|
||||||
<where>
|
|
||||||
<if test="request.name != null">
|
|
||||||
and test_resource_pool.name like CONCAT('%', #{request.name},'%')
|
|
||||||
</if>
|
|
||||||
</where>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="listResourcesByPoolId" resultType="io.metersphere.base.domain.TestResource">
|
|
||||||
SELECT * FROM test_resource WHERE test_resource_pool_id = #{id}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
|
|
@ -1,5 +1,10 @@
|
||||||
package io.metersphere.commons.utils;
|
package io.metersphere.commons.utils;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
public class MybatisInterceptorConfig {
|
public class MybatisInterceptorConfig {
|
||||||
private String modelName;
|
private String modelName;
|
||||||
private String attrName;
|
private String attrName;
|
||||||
|
@ -9,7 +14,6 @@ public class MybatisInterceptorConfig {
|
||||||
private String undoClass;
|
private String undoClass;
|
||||||
private String undoMethod;
|
private String undoMethod;
|
||||||
|
|
||||||
|
|
||||||
public MybatisInterceptorConfig() {
|
public MybatisInterceptorConfig() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,100 +21,25 @@ public class MybatisInterceptorConfig {
|
||||||
* 用时需谨慎!!!!!
|
* 用时需谨慎!!!!!
|
||||||
* 主要配置多个的时候,参数少一点
|
* 主要配置多个的时候,参数少一点
|
||||||
*
|
*
|
||||||
* @param modelName
|
* @param modelClass
|
||||||
* @param attrName
|
* @param attrName
|
||||||
*/
|
*/
|
||||||
public MybatisInterceptorConfig(String modelName, String attrName) {
|
public MybatisInterceptorConfig(Class<?> modelClass, String attrName) {
|
||||||
this.modelName = modelName;
|
this.modelName = modelClass.getName();
|
||||||
this.attrName = attrName;
|
this.attrName = attrName;
|
||||||
this.interceptorClass = "io.metersphere.commons.utils.EncryptUtils";
|
this.interceptorClass = EncryptUtils.class.getName();
|
||||||
this.interceptorMethod = "aesEncrypt";
|
this.interceptorMethod = "aesEncrypt";
|
||||||
this.undoClass = "io.metersphere.commons.utils.EncryptUtils";
|
this.undoClass = EncryptUtils.class.getName();
|
||||||
this.undoMethod = "aesDecrypt";
|
this.undoMethod = "aesDecrypt";
|
||||||
}
|
}
|
||||||
|
|
||||||
public MybatisInterceptorConfig(String modelName, String attrName, String attrNameForList) {
|
public MybatisInterceptorConfig(Class<?> modelClass, String attrName, Class<?> interceptorClass, String interceptorMethod, String undoMethod) {
|
||||||
this.modelName = modelName;
|
this.modelName = modelClass.getName();
|
||||||
this.attrName = attrName;
|
this.attrName = attrName;
|
||||||
this.attrNameForList = attrNameForList;
|
this.interceptorClass = interceptorClass.getName();
|
||||||
this.interceptorClass = "io.metersphere.commons.utils.EncryptUtils";
|
|
||||||
this.interceptorMethod = "aesEncrypt";
|
|
||||||
this.undoClass = "io.metersphere.commons.utils.EncryptUtils";
|
|
||||||
this.undoMethod = "aesDecrypt";
|
|
||||||
}
|
|
||||||
|
|
||||||
public MybatisInterceptorConfig(String modelName, String attrName, String interceptorClass, String interceptorMethod, String undoMethod) {
|
|
||||||
this.modelName = modelName;
|
|
||||||
this.attrName = attrName;
|
|
||||||
this.interceptorClass = interceptorClass;
|
|
||||||
this.interceptorMethod = interceptorMethod;
|
this.interceptorMethod = interceptorMethod;
|
||||||
this.undoClass = interceptorClass;
|
this.undoClass = interceptorClass.getName();
|
||||||
this.undoMethod = undoMethod;
|
this.undoMethod = undoMethod;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MybatisInterceptorConfig(String modelName, String attrName, String attrNameForList, String interceptorClass, String interceptorMethod, String undoMethod) {
|
|
||||||
this.modelName = modelName;
|
|
||||||
this.attrName = attrName;
|
|
||||||
this.attrNameForList = attrNameForList;
|
|
||||||
this.interceptorClass = interceptorClass;
|
|
||||||
this.interceptorMethod = interceptorMethod;
|
|
||||||
this.undoClass = interceptorClass;
|
|
||||||
this.undoMethod = undoMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getModelName() {
|
|
||||||
return modelName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModelName(String modelName) {
|
|
||||||
this.modelName = modelName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAttrName() {
|
|
||||||
return attrName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAttrName(String attrName) {
|
|
||||||
this.attrName = attrName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAttrNameForList() {
|
|
||||||
return attrNameForList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAttrNameForList(String attrNameForList) {
|
|
||||||
this.attrNameForList = attrNameForList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInterceptorMethod() {
|
|
||||||
return interceptorMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInterceptorMethod(String interceptorMethod) {
|
|
||||||
this.interceptorMethod = interceptorMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUndoMethod() {
|
|
||||||
return undoMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUndoMethod(String undoMethod) {
|
|
||||||
this.undoMethod = undoMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getInterceptorClass() {
|
|
||||||
return interceptorClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInterceptorClass(String interceptorClass) {
|
|
||||||
this.interceptorClass = interceptorClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUndoClass() {
|
|
||||||
return undoClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUndoClass(String undoClass) {
|
|
||||||
this.undoClass = undoClass;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package io.metersphere.config;
|
package io.metersphere.config;
|
||||||
|
|
||||||
import com.github.pagehelper.PageInterceptor;
|
import com.github.pagehelper.PageInterceptor;
|
||||||
|
import io.metersphere.base.domain.FileContent;
|
||||||
|
import io.metersphere.base.domain.TestResource;
|
||||||
|
import io.metersphere.commons.utils.CompressUtils;
|
||||||
import io.metersphere.commons.utils.MybatisInterceptorConfig;
|
import io.metersphere.commons.utils.MybatisInterceptorConfig;
|
||||||
import io.metersphere.interceptor.MybatisInterceptor;
|
import io.metersphere.interceptor.MybatisInterceptor;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
@ -37,7 +40,8 @@ public class MybatisConfig {
|
||||||
public MybatisInterceptor dbInterceptor() {
|
public MybatisInterceptor dbInterceptor() {
|
||||||
MybatisInterceptor interceptor = new MybatisInterceptor();
|
MybatisInterceptor interceptor = new MybatisInterceptor();
|
||||||
List<MybatisInterceptorConfig> configList = new ArrayList<>();
|
List<MybatisInterceptorConfig> configList = new ArrayList<>();
|
||||||
configList.add(new MybatisInterceptorConfig("io.metersphere.base.domain.FileContent", "file", "io.metersphere.commons.utils.CompressUtils", "zip", "unzip"));
|
configList.add(new MybatisInterceptorConfig(FileContent.class, "file", CompressUtils.class, "zip", "unzip"));
|
||||||
|
configList.add(new MybatisInterceptorConfig(TestResource.class, "configuration"));
|
||||||
interceptor.setInterceptorConfigList(configList);
|
interceptor.setInterceptorConfigList(configList);
|
||||||
return interceptor;
|
return interceptor;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,15 +7,16 @@ import io.metersphere.base.domain.TestResourcePool;
|
||||||
import io.metersphere.base.domain.TestResourcePoolExample;
|
import io.metersphere.base.domain.TestResourcePoolExample;
|
||||||
import io.metersphere.base.mapper.TestResourceMapper;
|
import io.metersphere.base.mapper.TestResourceMapper;
|
||||||
import io.metersphere.base.mapper.TestResourcePoolMapper;
|
import io.metersphere.base.mapper.TestResourcePoolMapper;
|
||||||
import io.metersphere.base.mapper.ext.ExtTestReourcePoolMapper;
|
|
||||||
import io.metersphere.commons.constants.ResourcePoolTypeEnum;
|
import io.metersphere.commons.constants.ResourcePoolTypeEnum;
|
||||||
import io.metersphere.commons.constants.ResourceStatusEnum;
|
import io.metersphere.commons.constants.ResourceStatusEnum;
|
||||||
import io.metersphere.commons.exception.MSException;
|
import io.metersphere.commons.exception.MSException;
|
||||||
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
import io.metersphere.controller.request.resourcepool.QueryResourcePoolRequest;
|
import io.metersphere.controller.request.resourcepool.QueryResourcePoolRequest;
|
||||||
import io.metersphere.dto.NodeDTO;
|
import io.metersphere.dto.NodeDTO;
|
||||||
import io.metersphere.dto.TestResourcePoolDTO;
|
import io.metersphere.dto.TestResourcePoolDTO;
|
||||||
import io.metersphere.engine.kubernetes.provider.KubernetesProvider;
|
import io.metersphere.engine.kubernetes.provider.KubernetesProvider;
|
||||||
import io.metersphere.i18n.Translator;
|
import io.metersphere.i18n.Translator;
|
||||||
|
import org.apache.commons.beanutils.BeanUtils;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
@ -25,6 +26,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -46,8 +49,6 @@ public class TestResourcePoolService {
|
||||||
@Resource
|
@Resource
|
||||||
private TestResourceMapper testResourceMapper;
|
private TestResourceMapper testResourceMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ExtTestReourcePoolMapper extTestReourcePoolMapper;
|
|
||||||
@Resource
|
|
||||||
private RestTemplate restTemplate;
|
private RestTemplate restTemplate;
|
||||||
|
|
||||||
public TestResourcePoolDTO addTestResourcePool(TestResourcePoolDTO testResourcePool) {
|
public TestResourcePoolDTO addTestResourcePool(TestResourcePoolDTO testResourcePool) {
|
||||||
|
@ -72,7 +73,27 @@ public class TestResourcePoolService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TestResourcePoolDTO> listResourcePools(QueryResourcePoolRequest request) {
|
public List<TestResourcePoolDTO> listResourcePools(QueryResourcePoolRequest request) {
|
||||||
return extTestReourcePoolMapper.listResourcePools(request);
|
TestResourcePoolExample example = new TestResourcePoolExample();
|
||||||
|
TestResourcePoolExample.Criteria criteria = example.createCriteria();
|
||||||
|
if (StringUtils.isNotBlank(request.getName())) {
|
||||||
|
criteria.andNameLike(StringUtils.wrapIfMissing(request.getName(), "%"));
|
||||||
|
}
|
||||||
|
List<TestResourcePool> testResourcePools = testResourcePoolMapper.selectByExample(example);
|
||||||
|
List<TestResourcePoolDTO> testResourcePoolDTOS = new ArrayList<>();
|
||||||
|
testResourcePools.forEach(pool -> {
|
||||||
|
TestResourceExample example2 = new TestResourceExample();
|
||||||
|
example2.createCriteria().andTestResourcePoolIdEqualTo(pool.getId());
|
||||||
|
List<TestResource> testResources = testResourceMapper.selectByExampleWithBLOBs(example2);
|
||||||
|
TestResourcePoolDTO testResourcePoolDTO = new TestResourcePoolDTO();
|
||||||
|
try {
|
||||||
|
BeanUtils.copyProperties(testResourcePoolDTO, pool);
|
||||||
|
testResourcePoolDTO.setResources(testResources);
|
||||||
|
testResourcePoolDTOS.add(testResourcePoolDTO);
|
||||||
|
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||||
|
LogUtil.error(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return testResourcePoolDTOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateTestResourcePool(TestResourcePoolDTO testResourcePool) {
|
private void validateTestResourcePool(TestResourcePoolDTO testResourcePool) {
|
||||||
|
|
Loading…
Reference in New Issue