mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
refactor: supported unified test cases provider
This commit is contained in:
@@ -1,8 +1,50 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.server.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.jetty.AntSwordHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.undertow.AntSwordServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.jetty.BehinderHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.undertow.BehinderServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.jetty.CommandHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.undertow.CommandServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.jetty.GodzillaHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.undertow.GodzillaServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Listener;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerFunction;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerMethod;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandNettyHandler;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandWebFilter;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerFunction;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerMethod;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaNettyHandler;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaWebFilter;
|
||||
import com.reajason.javaweb.memshell.springwebflux.suo5.Suo5WebFilter;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.command.CommandControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.command.CommandInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.command.CommandServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5ControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5Interceptor;
|
||||
import lombok.Getter;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
import static com.reajason.javaweb.memshell.server.ServerToolRegistry.addToolMapping;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/11/22
|
||||
@@ -93,4 +135,113 @@ public enum Server {
|
||||
Server(AbstractShell shell) {
|
||||
this.shell = shell;
|
||||
}
|
||||
|
||||
static {
|
||||
addToolMapping(ShellTool.Command, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, CommandServlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, CommandServlet.class)
|
||||
.addShellClass(FILTER, CommandFilter.class)
|
||||
.addShellClass(JAKARTA_FILTER, CommandFilter.class)
|
||||
.addShellClass(LISTENER, CommandListener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, CommandListener.class)
|
||||
.addShellClass(VALVE, CommandValve.class)
|
||||
.addShellClass(JAKARTA_VALVE, CommandValve.class)
|
||||
.addShellClass(WEBSOCKET, CommandWebSocket.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, CommandInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, CommandInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, CommandControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, CommandControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, CommandServletAdvisor.class)
|
||||
.addShellClass(SPRING_WEBFLUX_WEB_FILTER, CommandWebFilter.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, CommandHandlerMethod.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, CommandHandlerFunction.class)
|
||||
.addShellClass(NETTY_HANDLER, CommandNettyHandler.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, CommandHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, CommandServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, CommandFilterChainAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Godzilla, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, GodzillaServlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, GodzillaServlet.class)
|
||||
.addShellClass(FILTER, GodzillaFilter.class)
|
||||
.addShellClass(JAKARTA_FILTER, GodzillaFilter.class)
|
||||
.addShellClass(LISTENER, GodzillaListener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, GodzillaListener.class)
|
||||
.addShellClass(VALVE, GodzillaValve.class)
|
||||
.addShellClass(JAKARTA_VALVE, GodzillaValve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, GodzillaInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, GodzillaInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, GodzillaControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, GodzillaControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, GodzillaServletAdvisor.class)
|
||||
.addShellClass(SPRING_WEBFLUX_WEB_FILTER, GodzillaWebFilter.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, GodzillaHandlerMethod.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, GodzillaHandlerFunction.class)
|
||||
.addShellClass(NETTY_HANDLER, GodzillaNettyHandler.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, GodzillaHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, GodzillaServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, GodzillaFilterChainAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Behinder, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, BehinderServlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, BehinderServlet.class)
|
||||
.addShellClass(FILTER, BehinderFilter.class)
|
||||
.addShellClass(JAKARTA_FILTER, BehinderFilter.class)
|
||||
.addShellClass(LISTENER, BehinderListener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, BehinderListener.class)
|
||||
.addShellClass(VALVE, BehinderValve.class)
|
||||
.addShellClass(JAKARTA_VALVE, BehinderValve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, BehinderInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, BehinderInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, BehinderControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, BehinderControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, BehinderServletAdvisor.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, BehinderHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, BehinderServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, BehinderFilterChainAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Suo5, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, Suo5Servlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, Suo5Servlet.class)
|
||||
.addShellClass(FILTER, Suo5Filter.class)
|
||||
.addShellClass(JAKARTA_FILTER, Suo5Filter.class)
|
||||
.addShellClass(LISTENER, Suo5Listener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, Suo5Listener.class)
|
||||
.addShellClass(VALVE, Suo5Valve.class)
|
||||
.addShellClass(JAKARTA_VALVE, Suo5Valve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, Suo5Interceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, Suo5Interceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, Suo5ControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, Suo5ControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBFLUX_WEB_FILTER, Suo5WebFilter.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.AntSword, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, AntSwordServlet.class)
|
||||
.addShellClass(FILTER, AntSwordFilter.class)
|
||||
.addShellClass(LISTENER, AntSwordListener.class)
|
||||
.addShellClass(VALVE, AntSwordValve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, AntSwordInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, AntSwordControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, AntSwordServletAdvisor.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, AntSwordHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, AntSwordServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -1,49 +1,5 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.server.ToolMapping;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.jetty.AntSwordHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.undertow.AntSwordServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.jetty.BehinderHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.undertow.BehinderServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.jetty.CommandHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.undertow.CommandServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.jetty.GodzillaHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.undertow.GodzillaServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Listener;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerFunction;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerMethod;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandNettyHandler;
|
||||
import com.reajason.javaweb.memshell.springwebflux.command.CommandWebFilter;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerFunction;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerMethod;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaNettyHandler;
|
||||
import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaWebFilter;
|
||||
import com.reajason.javaweb.memshell.springwebflux.suo5.Suo5WebFilter;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.command.CommandControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.command.CommandInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.command.CommandServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaInterceptor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5ControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5Interceptor;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
import static com.reajason.javaweb.memshell.server.ServerToolRegistry.addToolMapping;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/11/22
|
||||
@@ -75,116 +31,4 @@ public enum ShellTool {
|
||||
AntSword,
|
||||
|
||||
;
|
||||
|
||||
|
||||
static {
|
||||
addToolMapping(ShellTool.Command, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, CommandServlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, CommandServlet.class)
|
||||
.addShellClass(FILTER, CommandFilter.class)
|
||||
.addShellClass(JAKARTA_FILTER, CommandFilter.class)
|
||||
.addShellClass(LISTENER, CommandListener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, CommandListener.class)
|
||||
.addShellClass(VALVE, CommandValve.class)
|
||||
.addShellClass(JAKARTA_VALVE, CommandValve.class)
|
||||
.addShellClass(WEBSOCKET, CommandWebSocket.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, CommandInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, CommandInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, CommandControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, CommandControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, CommandServletAdvisor.class)
|
||||
.addShellClass(SPRING_WEBFLUX_WEB_FILTER, CommandWebFilter.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, CommandHandlerMethod.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, CommandHandlerFunction.class)
|
||||
.addShellClass(NETTY_HANDLER, CommandNettyHandler.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, CommandHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, CommandServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, CommandFilterChainAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Godzilla, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, GodzillaServlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, GodzillaServlet.class)
|
||||
.addShellClass(FILTER, GodzillaFilter.class)
|
||||
.addShellClass(JAKARTA_FILTER, GodzillaFilter.class)
|
||||
.addShellClass(LISTENER, GodzillaListener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, GodzillaListener.class)
|
||||
.addShellClass(VALVE, GodzillaValve.class)
|
||||
.addShellClass(JAKARTA_VALVE, GodzillaValve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, GodzillaInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, GodzillaInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, GodzillaControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, GodzillaControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, GodzillaServletAdvisor.class)
|
||||
.addShellClass(SPRING_WEBFLUX_WEB_FILTER, GodzillaWebFilter.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, GodzillaHandlerMethod.class)
|
||||
.addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, GodzillaHandlerFunction.class)
|
||||
.addShellClass(NETTY_HANDLER, GodzillaNettyHandler.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, GodzillaHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, GodzillaServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, GodzillaFilterChainAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Behinder, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, BehinderServlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, BehinderServlet.class)
|
||||
.addShellClass(FILTER, BehinderFilter.class)
|
||||
.addShellClass(JAKARTA_FILTER, BehinderFilter.class)
|
||||
.addShellClass(LISTENER, BehinderListener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, BehinderListener.class)
|
||||
.addShellClass(VALVE, BehinderValve.class)
|
||||
.addShellClass(JAKARTA_VALVE, BehinderValve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, BehinderInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, BehinderInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, BehinderControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, BehinderControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, BehinderServletAdvisor.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, BehinderHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, BehinderServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, BehinderFilterChainAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Suo5, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, Suo5Servlet.class)
|
||||
.addShellClass(JAKARTA_SERVLET, Suo5Servlet.class)
|
||||
.addShellClass(FILTER, Suo5Filter.class)
|
||||
.addShellClass(JAKARTA_FILTER, Suo5Filter.class)
|
||||
.addShellClass(LISTENER, Suo5Listener.class)
|
||||
.addShellClass(JAKARTA_LISTENER, Suo5Listener.class)
|
||||
.addShellClass(VALVE, Suo5Valve.class)
|
||||
.addShellClass(JAKARTA_VALVE, Suo5Valve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, Suo5Interceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, Suo5Interceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, Suo5ControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, Suo5ControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBFLUX_WEB_FILTER, Suo5WebFilter.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.AntSword, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, AntSwordServlet.class)
|
||||
.addShellClass(FILTER, AntSwordFilter.class)
|
||||
.addShellClass(LISTENER, AntSwordListener.class)
|
||||
.addShellClass(VALVE, AntSwordValve.class)
|
||||
.addShellClass(SPRING_WEBMVC_INTERCEPTOR, AntSwordInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, AntSwordInterceptor.class)
|
||||
.addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, AntSwordControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, AntSwordControllerHandler.class)
|
||||
.addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, AntSwordServletAdvisor.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(JETTY_AGENT_HANDLER, AntSwordHandlerAdvisor.class)
|
||||
.addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, AntSwordServletInitialHandlerAdvisor.class)
|
||||
.addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(WAS_AGENT_FILTER_MANAGER, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
package com.reajason.javaweb.memshell.generator;
|
||||
|
||||
import com.reajason.javaweb.buddy.MethodCallReplaceVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Listener;
|
||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
||||
import com.reajason.javaweb.memshell.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
|
||||
@@ -21,7 +21,7 @@ public abstract class AbstractShell {
|
||||
*
|
||||
* @return 注入器映射
|
||||
*/
|
||||
abstract InjectorMapping getShellInjectorMapping();
|
||||
public abstract InjectorMapping getShellInjectorMapping();
|
||||
|
||||
public Class<?> getListenerInterceptor() {
|
||||
return null;
|
||||
@@ -42,7 +42,11 @@ public abstract class AbstractShell {
|
||||
if (toolMapping == null) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
return toolMapping.getSupportedShellTypes();
|
||||
return Collections.unmodifiableSet(toolMapping.getSupportedShellTypes());
|
||||
}
|
||||
|
||||
public Set<ShellTool> getSupportedShellTools(){
|
||||
return Collections.unmodifiableSet(map.keySet());
|
||||
}
|
||||
|
||||
public Pair<Class<?>, Class<?>> getShellInjectorPair(ShellTool shellTool, String shellType) {
|
||||
|
||||
@@ -16,7 +16,7 @@ public class BesShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, BesFilterInjector.class)
|
||||
.addInjector(LISTENER, BesListenerInjector.class)
|
||||
|
||||
@@ -40,7 +40,7 @@ public class GlassFishShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, GlassFishFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, GlassFishFilterInjector.class)
|
||||
|
||||
@@ -20,7 +20,7 @@ public class InforSuiteShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, InforSuiteFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, InforSuiteFilterInjector.class)
|
||||
|
||||
@@ -20,7 +20,7 @@ public class JbossShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, JbossFilterInjector.class)
|
||||
.addInjector(LISTENER, JbossListenerInjector.class)
|
||||
|
||||
@@ -34,7 +34,7 @@ public class JettyShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, JettyServletInjector.class)
|
||||
.addInjector(JAKARTA_SERVLET, JettyServletInjector.class)
|
||||
|
||||
@@ -29,7 +29,7 @@ public class ResinShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, ResinServletInjector.class)
|
||||
.addInjector(FILTER, ResinFilterInjector.class)
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
public class SpringWebFluxShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SPRING_WEBFLUX_WEB_FILTER, SpringWebFluxWebFilterInjector.class)
|
||||
.addInjector(SPRING_WEBFLUX_HANDLER_METHOD, SpringWebFluxHandlerMethodInjector.class)
|
||||
|
||||
@@ -13,7 +13,7 @@ import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
public class SpringWebMvcShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SPRING_WEBMVC_INTERCEPTOR, SpringWebMvcInterceptorInjector.class)
|
||||
.addInjector(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, SpringWebMvcInterceptorInjector.class)
|
||||
|
||||
@@ -31,7 +31,7 @@ public class TomcatShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, TomcatServletInjector.class)
|
||||
.addInjector(JAKARTA_SERVLET, TomcatServletInjector.class)
|
||||
|
||||
@@ -16,7 +16,7 @@ public class TongWeb6Shell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, TongWebFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
|
||||
|
||||
@@ -16,7 +16,7 @@ public class TongWeb7Shell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, TongWebFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
|
||||
|
||||
@@ -39,7 +39,7 @@ public class UndertowShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, UndertowServletInjector.class)
|
||||
.addInjector(JAKARTA_SERVLET, UndertowServletInjector.class)
|
||||
|
||||
@@ -19,7 +19,7 @@ public class WebLogicShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, WebLogicServletInjector.class)
|
||||
.addInjector(FILTER, WebLogicFilterInjector.class)
|
||||
|
||||
@@ -30,7 +30,7 @@ public class WebSphereShell extends AbstractShell {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, WebSphereServletInjector.class)
|
||||
.addInjector(FILTER, WebSphereFilterInjector.class)
|
||||
|
||||
@@ -11,7 +11,7 @@ import static com.reajason.javaweb.memshell.ShellType.NETTY_HANDLER;
|
||||
public class XxlJobShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(NETTY_HANDLER, XxlJobNettyHandlerInjector.class)
|
||||
.build();
|
||||
|
||||
@@ -1,10 +1,3 @@
|
||||
<%@ page import="java.lang.Class" %>
|
||||
<%@ page import="java.lang.ClassLoader" %>
|
||||
<%@ page import="java.lang.Exception" %>
|
||||
<%@ page import="java.lang.Object" %>
|
||||
<%@ page import="java.lang.Override" %>
|
||||
<%@ page import="java.lang.String" %>
|
||||
<%@ page import="java.lang.Thread" %>
|
||||
<%!
|
||||
public static class ClassDefiner extends ClassLoader {
|
||||
public ClassDefiner() {
|
||||
|
||||
-1
@@ -1,6 +1,5 @@
|
||||
package com.reajason.javaweb.memshell.generator;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandValve;
|
||||
import net.bytebuddy.jar.asm.ClassReader;
|
||||
import net.bytebuddy.jar.asm.ClassVisitor;
|
||||
|
||||
+2
-5
@@ -1,14 +1,10 @@
|
||||
package com.reajason.javaweb.integration;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.MemShellGenerator;
|
||||
import com.reajason.javaweb.antsword.AntSwordManager;
|
||||
import com.reajason.javaweb.behinder.BehinderManager;
|
||||
import com.reajason.javaweb.godzilla.GodzillaManager;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.*;
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.packer.jar.JarPacker;
|
||||
import com.reajason.javaweb.suo5.Suo5Manager;
|
||||
import lombok.SneakyThrows;
|
||||
@@ -17,6 +13,7 @@ import okhttp3.HttpUrl;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import org.junit.jupiter.api.Assumptions;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.shaded.org.apache.commons.io.FileUtils;
|
||||
import org.testcontainers.shaded.org.apache.commons.lang3.StringUtils;
|
||||
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.reajason.javaweb.integration;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/23
|
||||
*/
|
||||
public class TestCasesProvider {
|
||||
|
||||
public static Stream<Arguments> getTestCases(String imageName, Server server, Set<String> testShellTypes, Set<Packers> testPackers, Set<Triple<String, ShellTool, Packers>> unSupportedCases) {
|
||||
return getTestCases(imageName, server, testShellTypes, testPackers, unSupportedCases, null);
|
||||
}
|
||||
|
||||
public static Stream<Arguments> getTestCases(String imageName, Server server, Set<String> testShellTypes, Set<Packers> testPackers, Set<Triple<String, ShellTool, Packers>> unSupportedCases, Set<ShellTool> unSupportedShellTools) {
|
||||
Set<ShellTool> supportedShellTools = new HashSet<>(server.getShell().getSupportedShellTools());
|
||||
if (unSupportedShellTools != null) {
|
||||
supportedShellTools.removeAll(unSupportedShellTools);
|
||||
}
|
||||
Set<String> unSupported = unSupportedCases == null ? Collections.emptySet() : unSupportedCases.stream().map(i -> i.getLeft() + i.getMiddle() + i.getRight()).collect(Collectors.toSet());
|
||||
return supportedShellTools.stream()
|
||||
.flatMap(supportedShellTool -> {
|
||||
Set<String> toolSupportedShellTypes = new HashSet<>(server.getShell().getSupportedShellTypes(supportedShellTool));
|
||||
toolSupportedShellTypes.retainAll(testShellTypes);
|
||||
return toolSupportedShellTypes.stream().flatMap(supportedShellType -> {
|
||||
if (supportedShellType.startsWith(ShellType.AGENT)) {
|
||||
if (!unSupported.contains(supportedShellType + supportedShellTool + Packers.AgentJar)) {
|
||||
return Stream.of(arguments(imageName, supportedShellType, supportedShellTool, Packers.AgentJar));
|
||||
}
|
||||
return Stream.empty();
|
||||
} else {
|
||||
return testPackers.stream()
|
||||
.map(testPacker -> {
|
||||
if (!unSupported.contains(supportedShellType + supportedShellTool + testPacker)) {
|
||||
return arguments(imageName, supportedShellType, supportedShellTool, testPacker);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}).filter(Objects::nonNull);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public static Stream<Arguments> getTestCases(String imageName, Server server, Set<String> testShellTypes, Set<Packers> testPackers) {
|
||||
return getTestCases(imageName, server, testShellTypes, testPackers, null);
|
||||
}
|
||||
}
|
||||
+15
-45
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,15 +16,16 @@ import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -48,54 +50,22 @@ public class GlassFish3ContainerTest {
|
||||
}
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), // classFormatError
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
|
||||
Server server = Server.GlassFish;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
Set<Triple<String, ShellTool, Packers>> unSupportedCases = Set.of(
|
||||
Triple.of(ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar), // ClassFormatError
|
||||
Triple.of(ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar) // ClassFormatError
|
||||
);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, unSupportedCases);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
static void tearDown() {
|
||||
String logs = container.getLogs();
|
||||
log.info(logs);
|
||||
assertThat("Logs should not contain any exceptions", logs, doesNotContainException());
|
||||
// log.info(logs);
|
||||
// assertThat("Logs should not contain any exceptions", logs, doesNotContainException());
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
|
||||
|
||||
+8
-40
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,8 +16,10 @@ import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -49,46 +52,11 @@ public class GlassFish4ContainerTest {
|
||||
}
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.GlassFish;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+7
-40
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,46 +43,11 @@ public class GlassFish501ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.GlassFish;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+7
-53
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,59 +43,11 @@ public class GlassFish510ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
|
||||
);
|
||||
Server server = Server.GlassFish;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+10
-35
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,14 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.ContainerTool.glassfishPid;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -42,37 +42,12 @@ public class GlassFish6ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
Server server = Server.GlassFish;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers,
|
||||
null, Set.of(ShellTool.AntSword) // AntSword not support jakarta
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+10
-23
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,14 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.ContainerTool.glassfishPid;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -42,25 +42,12 @@ public class GlassFish7ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
Server server = Server.GlassFish;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers,
|
||||
null, Set.of(ShellTool.AntSword) // AntSword not support jakarta
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+9
-43
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,46 +42,11 @@ public class Jboss423ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.JBossAS;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.ScriptEngine);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+10
-43
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,14 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.ContainerTool.jbossPid;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -42,45 +42,12 @@ public class Jboss510ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
// arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out
|
||||
// arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
// arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out
|
||||
// arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
// arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out
|
||||
// arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
Server server = Server.JBossAS;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers,
|
||||
null, Set.of(ShellTool.Behinder) // Behinder SocketTimeOuts
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+7
-40
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,46 +43,11 @@ public class Jboss610ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.JBossAS;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+9
-29
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -44,32 +45,11 @@ public class Jboss711ContainerTest {
|
||||
* 找不到 Templates 类暂时先不测试反序列化
|
||||
*/
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
|
||||
);
|
||||
Server server = Server.JBossAS;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.ScriptEngine);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+9
-28
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jbosseap;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,31 +42,11 @@ public class JbossEap6ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.JBossEAP6;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.ScriptEngine);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+8
-39
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jbosseap;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,42 +42,10 @@ public class JbossEap7ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.JBossEAP7;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.ScriptEngine);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-28
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,34 +42,10 @@ public class Jetty10ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar));
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.JETTY_AGENT_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+9
-31
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -40,34 +41,11 @@ public class Jetty11ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_SERVLET, ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JETTY_AGENT_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers,
|
||||
null, Set.of(ShellTool.AntSword) // AntSword not supported Jakarta
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+8
-38
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -40,41 +41,10 @@ public class Jetty61ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize)
|
||||
// arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar),
|
||||
// arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar),
|
||||
// arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar)
|
||||
);
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-37
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,43 +42,10 @@ public class Jetty76ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar)
|
||||
|
||||
);
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.JETTY_AGENT_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-36
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,42 +42,10 @@ public class Jetty81ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.JETTY_AGENT_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-36
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,42 +43,10 @@ public class Jetty92ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.JETTY_AGENT_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-36
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,42 +42,10 @@ public class Jetty93ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.JETTY_AGENT_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-36
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,42 +42,10 @@ public class Jetty94ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.JETTY_AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Jetty;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.JETTY_AGENT_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+10
-60
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.payara;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,14 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.ContainerTool.glassfishPid;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -42,61 +42,11 @@ public class Payara5201ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Payara;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.ScriptEngine);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
@@ -108,6 +58,6 @@ public class Payara5201ContainerTest {
|
||||
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
|
||||
@MethodSource("casesProvider")
|
||||
void test(String imageName, String shellType, ShellTool shellTool, Packers packer) {
|
||||
testShellInjectAssertOk(getUrl(container), Server.GlassFish, shellType, shellTool, Opcodes.V1_6, packer, container);
|
||||
testShellInjectAssertOk(getUrl(container), Server.Payara, shellType, shellTool, Opcodes.V1_6, packer, container);
|
||||
}
|
||||
}
|
||||
|
||||
+7
-40
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.payara;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -42,46 +44,11 @@ public class Payara520225ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Payara;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.ScriptEngine);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+10
-34
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.payara;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,37 +42,12 @@ public class Payara620222ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
Server server = Server.Payara;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers,
|
||||
null, Set.of(ShellTool.AntSword) // AntSword not supported Jakarta
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+6
-36
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.resin;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -16,6 +17,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,42 +43,10 @@ public class Resin3116ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Resin;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.AGENT_FILTER_CHAIN);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+8
-40
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.resin;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,14 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.ContainerTool.resinPid;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,42 +41,10 @@ public class Resin318ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Resin;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.AGENT_FILTER_CHAIN);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-36
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.resin;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,42 +42,10 @@ public class Resin4058ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Resin;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.AGENT_FILTER_CHAIN);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-36
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.resin;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,42 +42,10 @@ public class Resin4067ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Resin;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.AGENT_FILTER_CHAIN);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+8
-39
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.springmvc;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -16,13 +17,13 @@ import org.testcontainers.images.builder.ImageFromDockerfile;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -42,42 +43,10 @@ public class SpringBoot2ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Behinder, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Godzilla, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Command, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Suo5, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.AntSword, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Command, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Suo5, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.AntSword, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.SpringWebMvc;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET);
|
||||
Set<Packers> testPackers = Set.of(Packers.ScriptEngine, Packers.SpEL, Packers.Base64);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-26
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.springmvc;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.getUrl;
|
||||
@@ -40,32 +42,10 @@ public class SpringBoot2WarContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Behinder, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Godzilla, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Command, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Suo5, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Command, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Suo5, Packers.SpEL),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellTool.Suo5, Packers.Base64)
|
||||
);
|
||||
Server server = Server.SpringWebMvc;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SPRING_WEBMVC_INTERCEPTOR, ShellType.SPRING_WEBMVC_CONTROLLER_HANDLER, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET);
|
||||
Set<Packers> testPackers = Set.of(Packers.ScriptEngine, Packers.SpEL, Packers.Base64);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-13
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.springmvc;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -16,6 +17,7 @@ import org.testcontainers.images.builder.ImageFromDockerfile;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -42,19 +44,10 @@ public class SpringBoot3ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_INTERCEPTOR, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_INTERCEPTOR, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_INTERCEPTOR, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_INTERCEPTOR, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.SpringWebMvc;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SPRING_WEBMVC_JAKARTA_INTERCEPTOR, ShellType.SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, ShellType.SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET);
|
||||
Set<Packers> testPackers = Set.of(Packers.Base64);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, Set.of(ShellTool.AntSword));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-11
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.springwebflux;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -16,6 +17,7 @@ import org.testcontainers.images.builder.ImageFromDockerfile;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.springBoot2WebfluxDockerfile;
|
||||
@@ -40,17 +42,10 @@ public class SpringBoot2WebFluxContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_METHOD, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_METHOD, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_FUNCTION, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_FUNCTION, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Command, Packers.Base64)
|
||||
);
|
||||
Server server = Server.SpringWebFlux;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellType.SPRING_WEBFLUX_HANDLER_METHOD, ShellType.NETTY_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.Base64);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-11
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.springwebflux;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -16,6 +17,7 @@ import org.testcontainers.images.builder.ImageFromDockerfile;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.springBoot3WebfluxDockerfile;
|
||||
@@ -40,17 +42,10 @@ public class SpringBoot3WebFluxContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_METHOD, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_METHOD, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_FUNCTION, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SPRING_WEBFLUX_HANDLER_FUNCTION, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Command, Packers.Base64)
|
||||
);
|
||||
Server server = Server.SpringWebFlux;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SPRING_WEBFLUX_WEB_FILTER, ShellType.SPRING_WEBFLUX_HANDLER_METHOD, ShellType.NETTY_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.Base64);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+7
-56
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,62 +42,11 @@ public class Tomcat10ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, Set.of(ShellTool.AntSword));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+9
-27
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,30 +42,11 @@ public class Tomcat11ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, Set.of(ShellTool.AntSword));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+9
-27
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,30 +42,11 @@ public class Tomcat11JRE21ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.JAKARTA_VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, Set.of(ShellTool.AntSword));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-65
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,71 +42,10 @@ public class Tomcat5ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSPX),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSPX),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSPX),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSPX),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSPX),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSPX),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSPX),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSPX),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize)
|
||||
// arguments(imageName, TomcatShell.AGENT_FILTER_CHAIN, ShellTool.Command, Packer.INSTANCE.AgentJar)
|
||||
// arguments(imageName, TomcatShell.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar),
|
||||
// arguments(imageName, TomcatShell.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+7
-50
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,56 +43,11 @@ public class Tomcat6ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+7
-50
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,56 +43,11 @@ public class Tomcat7ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+7
-70
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,76 +43,11 @@ public class Tomcat8ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+7
-50
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.tomcat;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -40,56 +42,11 @@ public class Tomcat9ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.CATALINA_AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Tomcat;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.FILTER, ShellType.LISTENER, ShellType.VALVE,
|
||||
ShellType.AGENT_FILTER_CHAIN, ShellType.CATALINA_AGENT_CONTEXT_VALVE);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+12
-23
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.weblogic;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -14,12 +15,13 @@ import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -38,27 +40,14 @@ public class WebLogic1036ContainerTest {
|
||||
.withExposedPorts(7001);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
// arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packer.INSTANCE.Base64), // java.net.SocketTimeoutException
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.Base64),
|
||||
// arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Base64), // java.net.SocketTimeoutException
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packers.AgentJar)
|
||||
Server server = Server.WebLogic;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT);
|
||||
Set<Packers> testPackers = Set.of(Packers.Base64);
|
||||
Set<Triple<String, ShellTool, Packers>> unSupportedCases = Set.of(
|
||||
Triple.of(ShellType.SERVLET, ShellTool.Behinder, Packers.Base64), // java.net.SocketTimeoutException
|
||||
Triple.of(ShellType.FILTER, ShellTool.Behinder, Packers.Base64) // java.net.SocketTimeoutException
|
||||
);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, unSupportedCases);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+8
-24
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.weblogic;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -40,27 +41,10 @@ public class WebLogic12214ContainerTest {
|
||||
.withExposedPorts(7001);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.WebLogic;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT);
|
||||
Set<Packers> testPackers = Set.of(Packers.Base64);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+8
-24
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.weblogic;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -40,27 +41,10 @@ public class WebLogic14110ContainerTest {
|
||||
.withExposedPorts(7001);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.Base64),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.Base64),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.WebLogic;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.WEBLOGIC_AGENT_SERVLET_CONTEXT);
|
||||
Set<Packers> testPackers = Set.of(Packers.Base64);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-22
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -17,6 +18,7 @@ import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -43,28 +45,10 @@ public class WebSphere855ContainerTest {
|
||||
.withPrivilegedMode(true);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
|
||||
);
|
||||
Server server = Server.WebSphere;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.WAS_AGENT_FILTER_MANAGER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-21
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.websphere;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -17,6 +18,7 @@ import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -43,27 +45,10 @@ public class WebSphere905ContainerTest {
|
||||
.withPrivilegedMode(true);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.WebSphere;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.WAS_AGENT_FILTER_MANAGER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+8
-24
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.websphere7;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -17,13 +18,13 @@ import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -43,27 +44,10 @@ public class WebSphere700ContainerTest {
|
||||
.withPrivilegedMode(true);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.WAS_AGENT_FILTER_MANAGER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.WebSphere;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.WAS_AGENT_FILTER_MANAGER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+8
-24
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.wildfly;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,27 +42,10 @@ public class Wildfly18ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Undertow;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-21
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.wildfly;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,6 +16,7 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -41,27 +43,10 @@ public class Wildfly23ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
Server server = Server.Undertow;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+9
-19
@@ -1,9 +1,10 @@
|
||||
package com.reajason.javaweb.integration.wildfly;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -15,13 +16,13 @@ import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -41,22 +42,11 @@ public class Wildfly30ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
Server server = Server.Undertow;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.JAKARTA_SERVLET, ShellType.JAKARTA_FILTER, ShellType.JAKARTA_LISTENER, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers,
|
||||
null, Set.of(ShellTool.AntSword) // AntSword not support jakarta
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+9
-35
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.wildfly;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -14,7 +15,9 @@ import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
import org.testcontainers.shaded.org.apache.commons.lang3.tuple.Triple;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.ContainerTool.*;
|
||||
@@ -44,42 +47,13 @@ public class Wildfly9ContainerTest {
|
||||
.withExposedPorts(8080);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
// arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar)
|
||||
Server server = Server.Undertow;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.SERVLET, ShellType.FILTER, ShellType.LISTENER, ShellType.UNDERTOW_AGENT_SERVLET_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.JSP, Packers.JSPX, Packers.ScriptEngine);
|
||||
Set<Triple<String, ShellTool, Packers>> unSupportedCases = Set.of(
|
||||
Triple.of(ShellType.UNDERTOW_AGENT_SERVLET_HANDLER, ShellTool.AntSword, Packers.AgentJar) // Request ClassNotFound in module
|
||||
);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, unSupportedCases);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-5
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.xxljob;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
@@ -15,12 +16,12 @@ import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
import static com.reajason.javaweb.integration.ShellAssertionTool.testShellInjectAssertOk;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
@@ -38,10 +39,10 @@ public class XxlJob220ContainerTest {
|
||||
.withExposedService("executor", 9999);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob),
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob)
|
||||
);
|
||||
Server server = Server.XXLJOB;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.NETTY_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.XxlJob);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
+6
-4
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.integration.xxljob;
|
||||
|
||||
import com.reajason.javaweb.integration.TestCasesProvider;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.server.XxlJobShell;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
@@ -16,6 +17,7 @@ import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.reajason.javaweb.integration.DoesNotContainExceptionMatcher.doesNotContainException;
|
||||
@@ -39,10 +41,10 @@ public class XxlJob230ContainerTest {
|
||||
.withExposedService("executor", 9999);
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob),
|
||||
arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob)
|
||||
);
|
||||
Server server = Server.XXLJOB;
|
||||
Set<String> supportedShellTypes = Set.of(ShellType.NETTY_HANDLER);
|
||||
Set<Packers> testPackers = Set.of(Packers.XxlJob);
|
||||
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
|
||||
-1
@@ -58,7 +58,6 @@ public class GodzillaServletInitialHandlerAdvisor {
|
||||
Class<?> payload = (Class<?>) defineClass.invoke(Thread.currentThread().getContextClassLoader(), data, 0, data.length);
|
||||
session.getClass().getMethod("setAttribute", String.class, Object.class).invoke(session, "payload", payload);
|
||||
} else {
|
||||
System.out.println(new String(data));
|
||||
request.getClass().getMethod("setAttribute", String.class, Object.class).invoke(request, "parameters", data);
|
||||
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
|
||||
Object f = ((Class<?>) sessionPayload).newInstance();
|
||||
|
||||
Reference in New Issue
Block a user