MCPcopy Create free account
hub / github.com/ax1sX/MemShell / MemShellCheck

Class MemShellCheck

JBossMemShell/src/main/java/com/axisx/MemShellCheck.java:19–314  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17import java.util.Map;
18
19public class MemShellCheck implements Filter {
20 private static Integer count=0;
21
22 @Override
23 public void init(FilterConfig filterConfig) throws ServletException {
24
25 }
26
27 @Override
28 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
29 HttpServletRequest req = (HttpServletRequest) servletRequest;
30 HttpServletResponse resp = (HttpServletResponse) servletResponse;
31 count=0;
32 resp.setCharacterEncoding("UTF-8");
33 resp.setHeader("Content-type", "text/plain;charset=UTF-8");
34 String id = req.getParameter("id");
35 String action = req.getParameter("action");
36 try {
37 Object context = getContext();
38 if (action.equals("scan")) {
39 /**
40 * Listener
41 */
42 resp.getWriter().println("/**\n" + "* Listener\n" + "*/\n");
43 Object[] listeners= (Object[]) getFV(context,"applicationEventListenersInstances");
44 if (listeners != null || listeners.length!=0) {
45 List<ServletRequestListener> newListeners = new ArrayList<>();
46 for (Object o : listeners) {
47 if (o instanceof ServletRequestListener) {
48 newListeners.add((ServletRequestListener) o);
49 }
50 }
51 String listenerTName = null;
52 for (ServletRequestListener listener : newListeners) {
53 listenerTName = listener.getClass().getName();
54 int idw = IDGenerate();
55 resp.getWriter().println(Template(idw, listener.hashCode(), null, null, listenerTName, listener.getClass().getClassLoader().getClass().getName(), listener.getClass()));
56 HashMap<String, Object> memShellInfo= CheckStruct.newMemShellInfo(null,null,listenerTName,listener.getClass().getClassLoader().getClass().getName(),listener.getClass(),"Listener");
57 CheckStruct.set(listener.hashCode(),memShellInfo);
58 }
59 }
60
61
62 /**
63 * Filter
64 */
65 resp.getWriter().println("/**\n" + "* Filter\n" + "*/\n");
66 Object[] filterMaps1 = getFilterMaps(req);
67 for (int i = 0; i < filterMaps1.length; i++) {
68 try {
69 Object fm = filterMaps1[i];
70 Method getFilterName = fm.getClass().getDeclaredMethod("getFilterName");
71 getFilterName.setAccessible(true);
72 String filterName = (String) getFilterName.invoke(fm, null);
73
74 HashMap<String, Object> filterConfigs = (HashMap<String, Object>) getFV(context, "filterConfigs");
75 Object appFilterConfig = filterConfigs.get(filterName);
76

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected