Skip to content

Commit 347c9c5

Browse files
committed
refactor: simplify fetch context from spring
1 parent 8c69c63 commit 347c9c5

12 files changed

+20
-17
lines changed

generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ public Set<Object> getContext() throws Exception {
8383
Map<?, ?> children = (Map<?, ?>) getFieldValue(value, "children");
8484
contexts.addAll(children.values());
8585
}
86+
} else if (thread.getContextClassLoader() != null
87+
&& thread.getContextClassLoader().getClass().getName().contains("WebappClassLoader")) {
88+
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
8689
}
8790
}
8891
return contexts;

generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ private String getContextRoot(Object context) {
6464
return c + "(" + r + ")";
6565
}
6666

67-
public List<Object> getContext() throws Exception {
68-
List<Object> contexts = new ArrayList<Object>();
67+
public Set<Object> getContext() throws Exception {
68+
Set<Object> contexts = new HashSet<Object>();
6969
Set<Thread> threads = Thread.getAllStackTraces().keySet();
7070
for (Thread thread : threads) {
7171
if (thread.getName().contains("ContainerBackgroundProcessor")) {
@@ -75,6 +75,9 @@ public List<Object> getContext() throws Exception {
7575
Map<?, ?> children = (Map<?, ?>) getFieldValue(value, "children");
7676
contexts.addAll(children.values());
7777
}
78+
} else if (thread.getContextClassLoader() != null
79+
&& thread.getContextClassLoader().getClass().getName().contains("WebappClassLoader")) {
80+
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
7881
}
7982
}
8083
return contexts;

generator/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ public Set<Object> getContext() throws Exception {
7474
Map<?, ?> children = (Map<?, ?>) getFieldValue(value, "children");
7575
contexts.addAll(children.values());
7676
}
77+
} else if (thread.getContextClassLoader() != null
78+
&& thread.getContextClassLoader().getClass().getName().contains("WebappClassLoader")) {
79+
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
7780
}
7881
}
7982
return contexts;

generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ public Set<Object> getContext() throws Exception {
8383
contexts.addAll(children.values());
8484
}
8585
} else if (thread.getContextClassLoader() != null
86-
&& (thread.getContextClassLoader().getClass().toString().contains("ParallelWebappClassLoader")
87-
|| thread.getContextClassLoader().getClass().toString().contains("TomcatEmbeddedWebappClassLoader"))) {
86+
&& thread.getContextClassLoader().getClass().toString().contains("WebappClassLoader")) {
8887
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
8988
}
9089
}

generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ public Set<Object> getContext() throws Exception {
7474
contexts.addAll(children.values());
7575
}
7676
} else if (thread.getContextClassLoader() != null
77-
&& (thread.getContextClassLoader().getClass().toString().contains("ParallelWebappClassLoader")
78-
|| thread.getContextClassLoader().getClass().toString().contains("TomcatEmbeddedWebappClassLoader"))) {
77+
&& thread.getContextClassLoader().getClass().toString().contains("WebappClassLoader")) {
7978
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
8079
}
8180
}

generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ public Set<Object> getContext() throws Exception {
100100
contexts.addAll(children.values());
101101
}
102102
} else if (thread.getContextClassLoader() != null
103-
&& (thread.getContextClassLoader().getClass().toString().contains("ParallelWebappClassLoader")
104-
|| thread.getContextClassLoader().getClass().toString().contains("TomcatEmbeddedWebappClassLoader"))) {
103+
&& thread.getContextClassLoader().getClass().toString().contains("WebappClassLoader")) {
105104
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
106105
}
107106
}

generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,7 @@ public Set<Object> getContext() throws Exception {
8181
contexts.addAll(children.values());
8282
}
8383
} else if (thread.getContextClassLoader() != null
84-
&& (thread.getContextClassLoader().getClass().toString().contains("ParallelWebappClassLoader")
85-
|| thread.getContextClassLoader().getClass().toString().contains("TomcatEmbeddedWebappClassLoader"))) {
84+
&& thread.getContextClassLoader().getClass().toString().contains("WebappClassLoader")) {
8685
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
8786
}
8887
}

generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ public Set<Object> getContext() throws Exception {
7474
contexts.addAll(children.values());
7575
}
7676
} else if (thread.getContextClassLoader() != null
77-
&& (thread.getContextClassLoader().getClass().toString().contains("ParallelWebappClassLoader")
78-
|| thread.getContextClassLoader().getClass().toString().contains("TomcatEmbeddedWebappClassLoader"))) {
77+
&& thread.getContextClassLoader().getClass().toString().contains("WebappClassLoader")) {
7978
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
8079
}
8180
}

generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ public Set<Object> getContext() throws Exception {
8080
contexts.addAll(children.values());
8181
}
8282
} else if (thread.getContextClassLoader() != null
83-
&& (thread.getContextClassLoader().getClass().toString().contains("ParallelWebappClassLoader")
84-
|| thread.getContextClassLoader().getClass().toString().contains("TomcatEmbeddedWebappClassLoader"))) {
83+
&& thread.getContextClassLoader().getClass().toString().contains("WebappClassLoader")) {
8584
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
8685
}
8786
}

generator/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public Set<Object> getContext() throws Exception {
9292
contexts.addAll(children.values());
9393
}
9494
} else if (thread.getContextClassLoader() != null
95-
&& thread.getContextClassLoader().getClass().getSimpleName().equals("TongWebWebappClassLoader")) {
95+
&& thread.getContextClassLoader().getClass().getName().contains("WebappClassLoader")) {
9696
contexts.add(getFieldValue(getFieldValue(thread.getContextClassLoader(), "resources"), "context"));
9797
}
9898
}catch (Exception ignored) {

0 commit comments

Comments
 (0)