资源池加密
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;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class MybatisInterceptorConfig {
|
||||
private String modelName;
|
||||
private String attrName;
|
||||
|
@ -9,7 +14,6 @@ public class MybatisInterceptorConfig {
|
|||
private String undoClass;
|
||||
private String undoMethod;
|
||||
|
||||
|
||||
public MybatisInterceptorConfig() {
|
||||
}
|
||||
|
||||
|
@ -17,100 +21,25 @@ public class MybatisInterceptorConfig {
|
|||
* 用时需谨慎!!!!!
|
||||
* 主要配置多个的时候,参数少一点
|
||||
*
|
||||
* @param modelName
|
||||
* @param modelClass
|
||||
* @param attrName
|
||||
*/
|
||||
public MybatisInterceptorConfig(String modelName, String attrName) {
|
||||
this.modelName = modelName;
|
||||
public MybatisInterceptorConfig(Class<?> modelClass, String attrName) {
|
||||
this.modelName = modelClass.getName();
|
||||
this.attrName = attrName;
|
||||
this.interceptorClass = "io.metersphere.commons.utils.EncryptUtils";
|
||||
this.interceptorClass = EncryptUtils.class.getName();
|
||||
this.interceptorMethod = "aesEncrypt";
|
||||
this.undoClass = "io.metersphere.commons.utils.EncryptUtils";
|
||||
this.undoClass = EncryptUtils.class.getName();
|
||||
this.undoMethod = "aesDecrypt";
|
||||
}
|
||||
|
||||
public MybatisInterceptorConfig(String modelName, String attrName, String attrNameForList) {
|
||||
this.modelName = modelName;
|
||||
public MybatisInterceptorConfig(Class<?> modelClass, String attrName, Class<?> interceptorClass, String interceptorMethod, String undoMethod) {
|
||||
this.modelName = modelClass.getName();
|
||||
this.attrName = attrName;
|
||||
this.attrNameForList = attrNameForList;
|
||||
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.interceptorClass = interceptorClass.getName();
|
||||
this.interceptorMethod = interceptorMethod;
|
||||
this.undoClass = interceptorClass;
|
||||
this.undoClass = interceptorClass.getName();
|
||||
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;
|
||||
|
||||
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.interceptor.MybatisInterceptor;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
|
@ -37,7 +40,8 @@ public class MybatisConfig {
|
|||
public MybatisInterceptor dbInterceptor() {
|
||||
MybatisInterceptor interceptor = new MybatisInterceptor();
|
||||
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);
|
||||
return interceptor;
|
||||
}
|
||||
|
|
|
@ -7,15 +7,16 @@ import io.metersphere.base.domain.TestResourcePool;
|
|||
import io.metersphere.base.domain.TestResourcePoolExample;
|
||||
import io.metersphere.base.mapper.TestResourceMapper;
|
||||
import io.metersphere.base.mapper.TestResourcePoolMapper;
|
||||
import io.metersphere.base.mapper.ext.ExtTestReourcePoolMapper;
|
||||
import io.metersphere.commons.constants.ResourcePoolTypeEnum;
|
||||
import io.metersphere.commons.constants.ResourceStatusEnum;
|
||||
import io.metersphere.commons.exception.MSException;
|
||||
import io.metersphere.commons.utils.LogUtil;
|
||||
import io.metersphere.controller.request.resourcepool.QueryResourcePoolRequest;
|
||||
import io.metersphere.dto.NodeDTO;
|
||||
import io.metersphere.dto.TestResourcePoolDTO;
|
||||
import io.metersphere.engine.kubernetes.provider.KubernetesProvider;
|
||||
import io.metersphere.i18n.Translator;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
@ -25,6 +26,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -46,8 +49,6 @@ public class TestResourcePoolService {
|
|||
@Resource
|
||||
private TestResourceMapper testResourceMapper;
|
||||
@Resource
|
||||
private ExtTestReourcePoolMapper extTestReourcePoolMapper;
|
||||
@Resource
|
||||
private RestTemplate restTemplate;
|
||||
|
||||
public TestResourcePoolDTO addTestResourcePool(TestResourcePoolDTO testResourcePool) {
|
||||
|
@ -72,7 +73,27 @@ public class TestResourcePoolService {
|
|||
}
|
||||
|
||||
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) {
|
||||
|
|
Loading…
Reference in New Issue