From ac9c608699f947cfaa4bad9040aaee7f1bd02e98 Mon Sep 17 00:00:00 2001 From: pen4uin Date: Sat, 24 Aug 2024 00:46:36 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E5=85=B6=E4=BB=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/jmg/core/config/AbstractConfig.java | 101 ++++++++++++++++++ .../main/java/jmg/core/config/Constants.java | 17 ++- .../src/main/java/jmg/core/jMGCodeApi.java | 6 +- .../main/java/jmg/core/util/CommonUtil.java | 7 ++ .../main/java/jmg/core/util/InjectorUtil.java | 3 - .../main/java/jmg/core/util/ResponseUtil.java | 1 + .../java/jmg/godzilla/util/ShellUtil.java | 2 +- 7 files changed, 128 insertions(+), 9 deletions(-) diff --git a/jmg-core/src/main/java/jmg/core/config/AbstractConfig.java b/jmg-core/src/main/java/jmg/core/config/AbstractConfig.java index 9bf7f18..934e2ba 100644 --- a/jmg-core/src/main/java/jmg/core/config/AbstractConfig.java +++ b/jmg-core/src/main/java/jmg/core/config/AbstractConfig.java @@ -304,4 +304,105 @@ public class AbstractConfig { } + public byte[] getExtenderBytes() { + return extenderBytes; + } + + public void setExtenderBytes(byte[] extenderBytes) { + this.extenderBytes = extenderBytes; + } + + private int extenderBytesLength; + private String extenderClassName; + private byte[] extenderBytes; + + private String detectWay; + + + public String getDetectWay() { + return detectWay; + } + + public void setDetectWay(String detectWay) { + this.detectWay = detectWay; + } + + + private boolean enabledExtender = false; + + + + public boolean isEnabledExtender() { + return enabledExtender; + } + + public void setEnabledExtender(boolean enabledExtender) { + this.enabledExtender = enabledExtender; + } + + public int getExtenderBytesLength() { + return extenderBytesLength; + } + + public void setExtenderBytesLength(int extenderBytesLength) { + this.extenderBytesLength = extenderBytesLength; + } + + public String getExtenderClassName() { + return extenderClassName; + } + + public void setExtenderClassName(String extenderClassName) { + this.extenderClassName = extenderClassName; + } + + + private String dnsDomain; + + + + public String getDnsDomain() { + return dnsDomain; + } + + + public void setDnsDomain(String dnsDomain) { + this.dnsDomain = dnsDomain; + } + + public String getBaseUrl() { + return baseUrl; + } + + public void setBaseUrl(String baseUrl) { + this.baseUrl = baseUrl; + } + + public String baseUrl; + + + public String getSleepTime() { + return sleepTime; + } + + public void setSleepTime(String sleepTime) { + this.sleepTime = sleepTime; + } + + public String sleepTime; + + public void setExtenderSimpleClassName(String extenderSimpleClassName) { + this.extenderSimpleClassName = extenderSimpleClassName; + } + + + public String getJarClassName() { + return this.jarClassName; + } + + public void setJarClassName(String jarClassName) { + this.jarClassName = jarClassName; + } + + private String jarClassName; } diff --git a/jmg-core/src/main/java/jmg/core/config/Constants.java b/jmg-core/src/main/java/jmg/core/config/Constants.java index b281dfc..75352f6 100644 --- a/jmg-core/src/main/java/jmg/core/config/Constants.java +++ b/jmg-core/src/main/java/jmg/core/config/Constants.java @@ -15,10 +15,10 @@ public class Constants { public static final String SERVER_JETTY = "Jetty"; public static final String SERVER_RESIN = "Resin"; - public static final String SERVER_WEBLOGIC = "Weblogic"; - public static final String SERVER_WEBSPHERE = "Websphere"; + public static final String SERVER_WEBLOGIC = "WebLogic"; + public static final String SERVER_WEBSPHERE = "WebSphere"; public static final String SERVER_UNDERTOW = "Undertow"; - public static final String SERVER_GLASSFISH = "Glassfish"; + public static final String SERVER_GLASSFISH = "GlassFish"; public static final String SERVER_JBOSS = "JBoss"; @@ -43,6 +43,8 @@ public class Constants { public static final String GADGET_SNAKEYAML = "SnakeYaml"; + public static final String GADGET_NONE = "NONE"; + public static final String GADGET_JDK_TRANSLET = "JDK_AbstractTranslet"; public static final String GADGET_XALAN_TRANSLET = "XALAN_AbstractTranslet"; @@ -52,7 +54,7 @@ public class Constants { public static final String TOOL_CUSTOM = "Custom"; - public static final String TOOL_NEOREGEORG = "NeoreGeorg"; + public static final String TOOL_NEOREGEORG = "Neo-reGeorg"; public static final String TOOL_SUO5 = "Suo5"; public static final String EXPR_EL = "EL"; @@ -61,4 +63,11 @@ public class Constants { public static final String EXPR_FREEMARKER = "FreeMarker"; public static final String EXPR_VELOCITY = "Velocity"; public static final String EXPR_JS = "ScriptEngineManager(JS)"; + + public static final String DETECT_DNS = "DNSLog"; + public static final String DETECT_HTTP = "HTTPLog"; + + public static final String DETECT_SLEEP = "Sleep"; + public static final String DETECT_DFSECHO = "DFSEcho"; + } diff --git a/jmg-core/src/main/java/jmg/core/jMGCodeApi.java b/jmg-core/src/main/java/jmg/core/jMGCodeApi.java index 1478674..89dd945 100644 --- a/jmg-core/src/main/java/jmg/core/jMGCodeApi.java +++ b/jmg-core/src/main/java/jmg/core/jMGCodeApi.java @@ -14,7 +14,11 @@ public class jMGCodeApi { public byte[] generate() throws Throwable { byte[] clazzBytes; - clazzBytes = config.getInjectorBytes(); + if (config.isEnabledExtender()) { + clazzBytes = config.getExtenderBytes(); + } else { + clazzBytes = config.getInjectorBytes(); + } if (clazzBytes == null) { return null; } diff --git a/jmg-core/src/main/java/jmg/core/util/CommonUtil.java b/jmg-core/src/main/java/jmg/core/util/CommonUtil.java index 064a4ac..57d9ef0 100644 --- a/jmg-core/src/main/java/jmg/core/util/CommonUtil.java +++ b/jmg-core/src/main/java/jmg/core/util/CommonUtil.java @@ -290,6 +290,13 @@ public class CommonUtil { } + public static void transformExtenderToFile(AbstractConfig config) throws Throwable { + config.setJarClassName(config.getExtenderClassName()); + config.setSavePath(getFileOutputPath(config.getOutputFormat(), config.getExtenderSimpleClassName(), config.getSavePath())); + jMGCodeApi codeApi = new jMGCodeApi(config); + FileUtil.writeFile(config.getSavePath(), codeApi.generate()); + } + public static void transformToFile(AbstractConfig config) throws Throwable { config.setSavePath(getFileOutputPath(config.getOutputFormat(), config.getInjectorSimpleClassName(), config.getSavePath())); jMGCodeApi codeApi = new jMGCodeApi(config); diff --git a/jmg-core/src/main/java/jmg/core/util/InjectorUtil.java b/jmg-core/src/main/java/jmg/core/util/InjectorUtil.java index 4762f44..82ae67c 100644 --- a/jmg-core/src/main/java/jmg/core/util/InjectorUtil.java +++ b/jmg-core/src/main/java/jmg/core/util/InjectorUtil.java @@ -101,8 +101,5 @@ public class InjectorUtil { Map springWebFluxMap = new HashMap(); springWebFluxMap.put(Constants.SHELL_WF_HANDLERMETHOD, "SpringWebFluxHandlerMethodInjector"); classMap.put(Constants.SERVER_SPRING_WEBFLUX, springWebFluxMap); - - - } } diff --git a/jmg-core/src/main/java/jmg/core/util/ResponseUtil.java b/jmg-core/src/main/java/jmg/core/util/ResponseUtil.java index 6319501..9635209 100644 --- a/jmg-core/src/main/java/jmg/core/util/ResponseUtil.java +++ b/jmg-core/src/main/java/jmg/core/util/ResponseUtil.java @@ -10,6 +10,7 @@ public class ResponseUtil { static { METHOD_BODY_MAP.put("tomcat", getCommonMethodBody()); + METHOD_BODY_MAP.put("jboss", getCommonMethodBody()); METHOD_BODY_MAP.put("weblogic", getCommonMethodBody()); METHOD_BODY_MAP.put("glassfish", getCommonMethodBody()); METHOD_BODY_MAP.put("resin", getResinMethodBody()); diff --git a/jmg-godzilla/src/main/java/jmg/godzilla/util/ShellUtil.java b/jmg-godzilla/src/main/java/jmg/godzilla/util/ShellUtil.java index f54d789..cbca3fd 100644 --- a/jmg-godzilla/src/main/java/jmg/godzilla/util/ShellUtil.java +++ b/jmg-godzilla/src/main/java/jmg/godzilla/util/ShellUtil.java @@ -41,7 +41,7 @@ public class ShellUtil { godzillaMap.put(Constants.SHELL_LISTENER, GodzillaListener.class.getSimpleName()); godzillaMap.put(Constants.SHELL_INTERCEPTOR, GodzillaInterceptor.class.getSimpleName()); godzillaMap.put(Constants.SHELL_WF_HANDLERMETHOD, GodzillaWebFluxHandlerMethod.class.getSimpleName()); - toolMap.put("Godzilla", godzillaMap); + toolMap.put(Constants.TOOL_GODZILLA, godzillaMap); }