refactor: simplify valve shell register

This commit is contained in:
ReaJason
2025-02-23 02:33:09 +08:00
parent 33a9008ecb
commit 76a78f14e0
30 changed files with 210 additions and 3157 deletions
@@ -0,0 +1,32 @@
package com.reajason.javaweb.memshell.generator;
import com.reajason.javaweb.memshell.ShellTool;
import net.bytebuddy.jar.asm.ClassReader;
import net.bytebuddy.jar.asm.ClassVisitor;
import net.bytebuddy.jar.asm.Opcodes;
import org.junit.jupiter.api.Test;
import java.io.InputStream;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author ReaJason
* @since 2025/2/22
*/
class ValveGeneratorTest {
@Test
void test() throws Exception {
Class<?> clazz = ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, ShellTool.Command);
InputStream resourceAsStream = clazz.getClassLoader().getResourceAsStream(clazz.getName().replace('.', '/') + ".class");
assert resourceAsStream != null;
ClassReader cr = new ClassReader(resourceAsStream);
cr.accept(new ClassVisitor(Opcodes.ASM9) {
@Override
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
assertEquals("com/bes/enterprise/webtier/Valve", interfaces[0]);
}
}, 0);
}
}