feat: support random param and default config (#50)

This commit is contained in:
ReaJason
2025-04-06 13:55:17 +08:00
parent 85e9eb8c70
commit 6b47b8e488
35 changed files with 251 additions and 116 deletions
@@ -15,7 +15,7 @@ import lombok.experimental.SuperBuilder;
@ToString
public class AntSwordConfig extends ShellToolConfig {
@Builder.Default
private String pass = "pass";
private String pass = CommonUtil.getRandomString(8);
@Builder.Default
private String headerName = "User-Agent";
@Builder.Default
@@ -15,7 +15,7 @@ import lombok.experimental.SuperBuilder;
@ToString
public class BehinderConfig extends ShellToolConfig {
@Builder.Default
private String pass = "pass";
private String pass = CommonUtil.getRandomString(8);
@Builder.Default
private String headerName = "User-Agent";
@Builder.Default
@@ -1,5 +1,6 @@
package com.reajason.javaweb.memshell.config;
import com.reajason.javaweb.memshell.utils.CommonUtil;
import lombok.Builder;
import lombok.Getter;
import lombok.ToString;
@@ -14,5 +15,5 @@ import lombok.experimental.SuperBuilder;
@ToString
public class CommandConfig extends ShellToolConfig {
@Builder.Default
private String paramName = "cmd";
private String paramName = CommonUtil.getRandomString(8);
}
@@ -15,9 +15,9 @@ import lombok.experimental.SuperBuilder;
@ToString
public class GodzillaConfig extends ShellToolConfig {
@Builder.Default
private String pass = "pass";
private String pass = CommonUtil.getRandomString(8);
@Builder.Default
private String key = "key";
private String key = CommonUtil.getRandomString(8);
@Builder.Default
private String headerName = "User-Agent";
@Builder.Default
@@ -30,8 +30,9 @@ public class ApusicShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SERVLET, ApusicServletInjector.class)
.addInjector(LISTENER, ApusicListenerInjector.class)
.addInjector(FILTER, ApusicFilterInjector.class)
.addInjector(LISTENER, ApusicListenerInjector.class).build();
.addInjector(SERVLET, ApusicServletInjector.class)
.build();
}
}
@@ -18,8 +18,8 @@ public class BesShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(FILTER, BesFilterInjector.class)
.addInjector(LISTENER, BesListenerInjector.class)
.addInjector(FILTER, BesFilterInjector.class)
.addInjector(VALVE, BesValveInjector.class)
.addInjector(AGENT_FILTER_CHAIN, BesFilterChainAgentInjector.class)
.addInjector(AGENT_FILTER_CHAIN_ASM, BesFilterChainAgentWithAsmInjector.class)
@@ -44,10 +44,10 @@ public class GlassFishShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(FILTER, GlassFishFilterInjector.class)
.addInjector(JAKARTA_FILTER, GlassFishFilterInjector.class)
.addInjector(LISTENER, GlassFishListenerInjector.class)
.addInjector(JAKARTA_LISTENER, GlassFishListenerInjector.class)
.addInjector(FILTER, GlassFishFilterInjector.class)
.addInjector(JAKARTA_FILTER, GlassFishFilterInjector.class)
.addInjector(VALVE, GlassFishValveInjector.class)
.addInjector(JAKARTA_VALVE, GlassFishValveInjector.class)
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
@@ -24,10 +24,10 @@ public class InforSuiteShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(FILTER, InforSuiteFilterInjector.class)
.addInjector(JAKARTA_FILTER, InforSuiteFilterInjector.class)
.addInjector(LISTENER, GlassFishListenerInjector.class)
.addInjector(JAKARTA_LISTENER, GlassFishListenerInjector.class)
.addInjector(FILTER, InforSuiteFilterInjector.class)
.addInjector(JAKARTA_FILTER, InforSuiteFilterInjector.class)
.addInjector(VALVE, GlassFishValveInjector.class)
.addInjector(JAKARTA_VALVE, GlassFishValveInjector.class)
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
@@ -24,8 +24,8 @@ public class JbossShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(FILTER, JbossFilterInjector.class)
.addInjector(LISTENER, JbossListenerInjector.class)
.addInjector(FILTER, JbossFilterInjector.class)
.addInjector(VALVE, JbossValveInjector.class)
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
.addInjector(AGENT_FILTER_CHAIN_ASM, TomcatFilterChainAgentWithAsmInjector.class)
@@ -33,12 +33,12 @@ public class JettyShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SERVLET, JettyServletInjector.class)
.addInjector(JAKARTA_SERVLET, JettyServletInjector.class)
.addInjector(FILTER, JettyFilterInjector.class)
.addInjector(JAKARTA_FILTER, JettyFilterInjector.class)
.addInjector(LISTENER, JettyListenerInjector.class)
.addInjector(JAKARTA_LISTENER, JettyListenerInjector.class)
.addInjector(FILTER, JettyFilterInjector.class)
.addInjector(JAKARTA_FILTER, JettyFilterInjector.class)
.addInjector(SERVLET, JettyServletInjector.class)
.addInjector(JAKARTA_SERVLET, JettyServletInjector.class)
.addInjector(JETTY_AGENT_HANDLER, JettyHandlerAgentInjector.class)
.addInjector(JETTY_AGENT_HANDLER_ASM, JettyHandlerAgentWithAsmInjector.class)
.build();
@@ -28,9 +28,9 @@ public class ResinShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SERVLET, ResinServletInjector.class)
.addInjector(FILTER, ResinFilterInjector.class)
.addInjector(LISTENER, ResinListenerInjector.class)
.addInjector(FILTER, ResinFilterInjector.class)
.addInjector(SERVLET, ResinServletInjector.class)
.addInjector(AGENT_FILTER_CHAIN, ResinFilterChainAgentInjector.class)
.addInjector(AGENT_FILTER_CHAIN_ASM, ResinFilterChainAgentWithAsmInjector.class)
.build();
@@ -23,12 +23,11 @@ public class ServerToolRegistry {
Set<String> injectorSupportedShellTypes = shellInjectorMapping.getSupportedShellTypes();
ToolMapping.ToolMappingBuilder toolMappingBuilder = ToolMapping.builder();
for (Map.Entry<String, Class<?>> entry : rawToolMapping.entrySet()) {
String shellType = entry.getKey();
if (!injectorSupportedShellTypes.contains(shellType)) {
for (String shellType : injectorSupportedShellTypes) {
Class<?> shellClass = rawToolMapping.get(shellType);
if (shellClass == null) {
continue;
}
Class<?> shellClass = entry.getValue();
if (ShellType.LISTENER.equals(shellType) || ShellType.JAKARTA_LISTENER.equals(shellType)) {
shellClass = ListenerGenerator.generateListenerShellClass(shell.getListenerInterceptor(), shellClass);
@@ -17,9 +17,9 @@ public class SpringWebFluxShell extends AbstractShell {
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SPRING_WEBFLUX_WEB_FILTER, SpringWebFluxWebFilterInjector.class)
.addInjector(NETTY_HANDLER, SpringWebFluxNettyHandlerInjector.class)
.addInjector(SPRING_WEBFLUX_HANDLER_METHOD, SpringWebFluxHandlerMethodInjector.class)
.addInjector(SPRING_WEBFLUX_HANDLER_FUNCTION, SpringWebFluxHandlerFunctionInjector.class)
.addInjector(NETTY_HANDLER, SpringWebFluxNettyHandlerInjector.class)
.build();
}
}
@@ -33,14 +33,14 @@ public class TomcatShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SERVLET, TomcatServletInjector.class)
.addInjector(JAKARTA_SERVLET, TomcatServletInjector.class)
.addInjector(FILTER, TomcatFilterInjector.class)
.addInjector(JAKARTA_FILTER, TomcatFilterInjector.class)
.addInjector(LISTENER, TomcatListenerInjector.class)
.addInjector(JAKARTA_LISTENER, TomcatListenerInjector.class)
.addInjector(FILTER, TomcatFilterInjector.class)
.addInjector(JAKARTA_FILTER, TomcatFilterInjector.class)
.addInjector(VALVE, TomcatValveInjector.class)
.addInjector(JAKARTA_VALVE, TomcatValveInjector.class)
.addInjector(SERVLET, TomcatServletInjector.class)
.addInjector(JAKARTA_SERVLET, TomcatServletInjector.class)
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
.addInjector(AGENT_FILTER_CHAIN_ASM, TomcatFilterChainAgentWithAsmInjector.class)
.addInjector(CATALINA_AGENT_CONTEXT_VALVE, TomcatContextValveAgentInjector.class)
@@ -18,10 +18,10 @@ public class TongWeb6Shell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(FILTER, TongWebFilterInjector.class)
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
.addInjector(LISTENER, TongWebListenerInjector.class)
.addInjector(JAKARTA_LISTENER, TongWebListenerInjector.class)
.addInjector(FILTER, TongWebFilterInjector.class)
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
.addInjector(VALVE, TongWebValveInjector.class)
.addInjector(JAKARTA_VALVE, TongWebValveInjector.class)
.addInjector(AGENT_FILTER_CHAIN, TongWebFilterChainAgentInjector.class)
@@ -18,10 +18,10 @@ public class TongWeb7Shell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(FILTER, TongWebFilterInjector.class)
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
.addInjector(LISTENER, TongWebListenerInjector.class)
.addInjector(JAKARTA_LISTENER, TongWebListenerInjector.class)
.addInjector(FILTER, TongWebFilterInjector.class)
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
.addInjector(VALVE, TongWebValveInjector.class)
.addInjector(JAKARTA_VALVE, TongWebValveInjector.class)
.addInjector(AGENT_FILTER_CHAIN, TongWebFilterChainAgentInjector.class)
@@ -38,12 +38,12 @@ public class UndertowShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SERVLET, UndertowServletInjector.class)
.addInjector(JAKARTA_SERVLET, UndertowServletInjector.class)
.addInjector(FILTER, UndertowFilterInjector.class)
.addInjector(JAKARTA_FILTER, UndertowFilterInjector.class)
.addInjector(LISTENER, UndertowListenerInjector.class)
.addInjector(JAKARTA_LISTENER, UndertowListenerInjector.class)
.addInjector(FILTER, UndertowFilterInjector.class)
.addInjector(JAKARTA_FILTER, UndertowFilterInjector.class)
.addInjector(SERVLET, UndertowServletInjector.class)
.addInjector(JAKARTA_SERVLET, UndertowServletInjector.class)
.addInjector(UNDERTOW_AGENT_SERVLET_HANDLER, UndertowServletInitialHandlerAgentInjector.class)
.addInjector(UNDERTOW_AGENT_SERVLET_HANDLER_ASM, UndertowServletInitialHandlerAgentWithAsmInjector.class)
.build();
@@ -18,9 +18,9 @@ public class WebLogicShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SERVLET, WebLogicServletInjector.class)
.addInjector(FILTER, WebLogicFilterInjector.class)
.addInjector(LISTENER, WebLogicListenerInjector.class)
.addInjector(FILTER, WebLogicFilterInjector.class)
.addInjector(SERVLET, WebLogicServletInjector.class)
.addInjector(WEBLOGIC_AGENT_SERVLET_CONTEXT, WebLogicServletContextAgentInjector.class)
.addInjector(WEBLOGIC_AGENT_SERVLET_CONTEXT_ASM, WebLogicServletContextAgentWithAsmInjector.class)
.build();
@@ -29,9 +29,9 @@ public class WebSphereShell extends AbstractShell {
@Override
public InjectorMapping getShellInjectorMapping() {
return InjectorMapping.builder()
.addInjector(SERVLET, WebSphereServletInjector.class)
.addInjector(FILTER, WebSphereFilterInjector.class)
.addInjector(LISTENER, WebSphereListenerInjector.class)
.addInjector(FILTER, WebSphereFilterInjector.class)
.addInjector(SERVLET, WebSphereServletInjector.class)
.addInjector(WAS_AGENT_FILTER_MANAGER, WebSphereFilterChainAgentInjector.class)
.addInjector(WAS_AGENT_FILTER_MANAGER_ASM, WebSphereFilterChainAgentWithAsmInjector.class)
.build();