Преглед на файлове

hos-esb清理文件名加密,统一使用文件id

airhead преди 8 години
родител
ревизия
19df59bf1f

+ 5 - 0
hos-core/pom.xml

@ -107,6 +107,11 @@
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

+ 1 - 1
hos-core/src/main/java/com/yihu/hos/core/datatype/ClassFileUtil.java

@ -264,7 +264,7 @@ public class ClassFileUtil {
    }
    public static String upload(String url, File file) {
        HTTPResponse response = HttpClientKit.postFile(url, "text/plain", "file", file.toString());
        HTTPResponse response = HttpClientKit.postFile(url, "file", file.toString(), "text/plain");
        if (response.getStatusCode() != 200) {
            return null;
        }

+ 1 - 1
hos-core/src/main/java/com/yihu/hos/core/http/DefaultClientImpl.java

@ -152,7 +152,7 @@ class DefaultClientImpl implements HTTPClient {
    }
    @Override
    public HTTPResponse postFile(String url, String contentType, String key, String path) {
    public HTTPResponse postFile(String url, String key, String path, String contentType) {
        try {
            File file = new File(path);

+ 1 - 1
hos-core/src/main/java/com/yihu/hos/core/http/HTTPClient.java

@ -32,7 +32,7 @@ public interface HTTPClient {
    HTTPResponse postFile(String url, String path, Map<String, String> params, Map<String, String> headers);
    HTTPResponse postFile(String url, String contentType, String key, String path);
    HTTPResponse postFile(String url, String key, String path, String contentType);
    HTTPResponse put(String url);

+ 3 - 3
hos-core/src/main/java/com/yihu/hos/core/http/HttpClientKit.java

@ -96,11 +96,11 @@ public class HttpClientKit {
        }
    }
    public static HTTPResponse postFile(String url, String contentType, String key, String path) {
    public static HTTPResponse postFile(String url, String key, String path, String contentType) {
        if (url.startsWith("https")) {
            return custom(url).postFile(url, contentType, key, path);
            return custom(url).postFile(url, key, path, contentType);
        } else {
            return use().postFile(url, contentType, key, path);
            return use().postFile(url, key, path, contentType);
        }
    }

+ 16 - 0
hos-core/src/test/java/com/yihu/hos/core/http/HttpClientKitTest.java

@ -0,0 +1,16 @@
package com.yihu.hos.core.http;
import org.junit.Test;
/**
 * Created by l4qiang on 2017-04-12.
 */
public class HttpClientKitTest {
    @Test
    public void postFile() throws Exception {
        HTTPResponse response = HttpClientKit.postFile("http://127.0.0.1:9010/dfs/file", "file", "e:/ss.jpg", "plain/text");
        System.out.println(response.getBody());
    }
}

+ 18 - 35
src/main/java/com/yihu/hos/system/service/FlowManager.java

@ -475,12 +475,8 @@ public class FlowManager {
            ServiceFlow serviceFlow = new ServiceFlow();
            //新增processor记录
            for (SystemServiceFlowTemp process : flowTempProces) {
                String deName = DES.decrypt(process.getClassPath(), DES.COMMON_PASSWORD);//吉阿米果的文件名
                String newFileName = genProcessorJavaFile(jobId, flow.getCode(), deName, process.getClassName());
                //生成新的java文件
                String enNewFileName = DES.encrypt(newFileName, DES.COMMON_PASSWORD);
                if (newFileName != null) {
                String newPath = genProcessorJavaFile(jobId, flow.getCode(), process.getClassPath(), process.getClassName());
                if (newPath != null) {
                    //发送消息
                    serviceFlow.setRouteCode(flow.getCode());
                    serviceFlow.setFlowType(ServiceFlowConstant.CLASS);
@ -489,7 +485,7 @@ public class FlowManager {
                    handleFile.setFileType(ServiceFlowConstant.JAVA);
                    handleFile.setPackageName(process.getPackageName());
                    handleFile.setClassName(process.getClassName());
                    handleFile.setFilePath(enNewFileName);
                    handleFile.setFilePath(newPath);
                    handleFile.setUsage(ServiceFlowConstant.FLOW_TYPE_PROCESSOR);
                    handleFiles.add(handleFile);
                    serviceFlow.setHandleFiles(handleFiles);
@ -499,11 +495,8 @@ public class FlowManager {
                }
            }
            String deName = DES.decrypt(flowTemp.getClassPath(), DES.COMMON_PASSWORD);//吉阿米果的文件名
            //生成新的route文件
            String newFileName = genRouteJavaFile(flow.getCode(), flowTemp.getClassName(), deName, newCron);
            String enNewFileName = DES.encrypt(newFileName, DES.COMMON_PASSWORD);
            String newPath = genRouteJavaFile(flow.getCode(), flowTemp.getClassName(), flowTemp.getClassPath(), newCron);
            serviceFlow.setRouteCode(flow.getCode());
            serviceFlow.setFlowType(ServiceFlowConstant.JAVA);
            ServiceFlow.HandleFile handleFile = new ServiceFlow.HandleFile();
@ -511,7 +504,7 @@ public class FlowManager {
            handleFile.setFileType(ServiceFlowConstant.JAVA);
            handleFile.setPackageName(flowTemp.getPackageName());
            handleFile.setClassName(flowTemp.getClassName() + flow.getCode());
            handleFile.setFilePath(enNewFileName);
            handleFile.setFilePath(newPath);
            handleFile.setUsage(ServiceFlowConstant.FLOW_TYPE_ROUTE);
            handleFiles.add(handleFile);
            serviceFlow.setHandleFiles(handleFiles);
@ -539,22 +532,18 @@ public class FlowManager {
            }
            //新增processor记录
            String deName = DES.decrypt(flowTemp.getClassPath(), DES.COMMON_PASSWORD);//吉阿米果的文件名
            String newFileName = genRouteJavaFile(newFlow.getCode(), flowTemp.getClassName(), deName, newCron);
            String enClassName = DES.encrypt(newFileName.replace(".java", ".class"), DES.COMMON_PASSWORD);//生成机密过的classPath
            String newPath = genRouteJavaFile(newFlow.getCode(), flowTemp.getClassName(), flowTemp.getClassPath(), newCron);
            SystemServiceFlowClass newFlowClass = new SystemServiceFlowClass();
            newFlowClass.setPackageName(flowTemp.getPackageName());
            newFlowClass.setClassName(flowTemp.getClassName() + newFlow.getCode());
            newFlowClass.setClassPath(enClassName);
            newFlowClass.setClassPath(flowTemp.getClassPath());
            newFlowClass.setFlowId(newFlow.getId());
            newFlowClass.setType(ServiceFlowConstant.FLOW_TYPE_ROUTE);
            flowClassDao.saveEntity(newFlowClass);
            newFlowClass.setIsUpdate("1");
            //生成新的route文件
            String enNewFileName = DES.encrypt(newFileName, DES.COMMON_PASSWORD);//加密文件名
            if (newFileName != null) {
            if (newPath != null) {
                ServiceFlow serviceFlow = new ServiceFlow();
                serviceFlow.setRouteCode(newFlow.getCode());
                serviceFlow.setFlowType(ServiceFlowConstant.CLASS);
@ -563,7 +552,7 @@ public class FlowManager {
                handleFile.setFileType(ServiceFlowConstant.JAVA);
                handleFile.setPackageName(flowTemp.getPackageName());
                handleFile.setClassName(flowTemp.getClassName() + newFlow.getCode());
                handleFile.setFilePath(enNewFileName);
                handleFile.setFilePath(newPath);
                handleFile.setUsage(ServiceFlowConstant.FLOW_TYPE_ROUTE);
                ArrayList<ServiceFlow.HandleFile> handleFiles = new ArrayList<>();
                handleFiles.add(handleFile);
@ -584,8 +573,9 @@ public class FlowManager {
        String fileName = javaName + ".java";
        String filePath = this.getClass().getProtectionDomain().getClassLoader().getResource("").getPath() + "temp/" + fileName;
        boolean succ = FileUtil.writeFile(filePath, fileInfo, "UTF-8");
        String path = "";
        if (succ) {
//            fileName = GridFSUtil.uploadFile(filePath, fileName, null);
            path = ClassFileUtil.uploadFile(beanConfig.getFsUrl(), new File(filePath), fileName);
        } else {
            return null;
        }
@ -599,8 +589,6 @@ public class FlowManager {
            systemServiceFlow.setFileType(ServiceFlowConstant.JAVA);
            flowDao.saveEntity(systemServiceFlow);
            String enFileName = DES.encrypt(fileName, DES.COMMON_PASSWORD);//加密文件名
            ServiceFlow serviceFlow = new ServiceFlow();
            serviceFlow.setRouteCode(code);
            serviceFlow.setFlowType(ServiceFlowConstant.CLASS);
@ -609,18 +597,17 @@ public class FlowManager {
            handleFile.setFileType(ServiceFlowConstant.JAVA);
            handleFile.setPackageName(packageName);
            handleFile.setClassName(javaName);
            handleFile.setFilePath(enFileName);
            handleFile.setFilePath(path);
            handleFile.setUsage(ServiceFlowConstant.FLOW_TYPE_ROUTE);
            ArrayList<ServiceFlow.HandleFile> handleFiles = new ArrayList<>();
            handleFiles.add(handleFile);
            serviceFlow.setHandleFiles(handleFiles);
            serviceFlowEventService.serviceFlowAdded(serviceFlow);
            String enClassName = DES.encrypt(javaName + ".class", DES.COMMON_PASSWORD);//生成加密过的classPath
            SystemServiceFlowClass flowClass = new SystemServiceFlowClass();
            flowClass.setPackageName(packageName);
            flowClass.setClassName(javaName);
            flowClass.setClassPath(enClassName);
            flowClass.setClassPath(path);
            flowClass.setFlowId(systemServiceFlow.getId());
            flowClass.setType(ServiceFlowConstant.FLOW_TYPE_ROUTE);
            flowClass.setIsUpdate("1");
@ -664,21 +651,17 @@ public class FlowManager {
                    }
                }
                String deName = DES.decrypt(process.getClassPath(), DES.COMMON_PASSWORD);//吉阿米果的文件名
                String newFileName = genProcessorJavaFile(jobId, newFlow.getCode(), deName, process.getClassName());
                String newPath = genProcessorJavaFile(jobId, newFlow.getCode(), process.getClassPath(), process.getClassName());
                String enClassName = DES.encrypt(newFileName.replace(".java", ".class"), DES.COMMON_PASSWORD);//生成机密过的classPath
                SystemServiceFlowClass processClass = new SystemServiceFlowClass();
                processClass.setPackageName(process.getPackageName());
                processClass.setClassName(process.getClassName());
                processClass.setClassPath(enClassName);
                processClass.setClassPath(processClass.getClassPath());
                processClass.setFlowId(newFlow.getId());
                processClass.setType(ServiceFlowConstant.FLOW_TYPE_PROCESSOR);
                processClass.setIsUpdate("1");
                //生成新的java文件
                String enNewFileName = DES.encrypt(newFileName, DES.COMMON_PASSWORD);
                if (newFileName != null) {
                if (newPath != null) {
                    //发送消息
                    ServiceFlow serviceFlow = new ServiceFlow();
                    serviceFlow.setRouteCode(newFlow.getCode());
@ -688,7 +671,7 @@ public class FlowManager {
                    handleFile.setFileType(ServiceFlowConstant.JAVA);
                    handleFile.setPackageName(processClass.getPackageName());
                    handleFile.setClassName(processClass.getClassName());
                    handleFile.setFilePath(enNewFileName);
                    handleFile.setFilePath(newPath);
                    handleFile.setUsage(ServiceFlowConstant.FLOW_TYPE_PROCESSOR);
                    handleFiles.add(handleFile);
                    serviceFlow.setHandleFiles(handleFiles);