in java/org/apache/catalina/loader/WebappClassLoaderBase.java [2234:2320]
protected boolean filter(String name, boolean isClassName) {
if (name == null) {
return false;
}
char ch;
if (name.startsWith("jakarta")) {
/* 7 == length("jakarta") */
if (name.length() == 7) {
return false;
}
ch = name.charAt(7);
if (isClassName && ch == '.') {
/* 8 == length("jakarta.") */
if (name.startsWith("servlet.jsp.jstl.", 8)) {
return false;
}
if (name.startsWith("annotation.", 8) || name.startsWith("el.", 8) || name.startsWith("servlet.", 8) ||
name.startsWith("websocket.", 8) || name.startsWith("security.auth.message.", 8)) {
return true;
}
} else if (!isClassName && ch == '/') {
/* 8 == length("jakarta/") */
if (name.startsWith("servlet/jsp/jstl/", 8)) {
return false;
}
if (name.startsWith("annotation/", 8) || name.startsWith("el/", 8) || name.startsWith("servlet/", 8) ||
name.startsWith("websocket/", 8) || name.startsWith("security/auth/message/", 8)) {
return true;
}
}
} else if (name.startsWith("javax")) {
/* 5 == length("javax") */
if (name.length() == 5) {
return false;
}
ch = name.charAt(5);
if (isClassName && ch == '.') {
/* 6 == length("javax.") */
if (name.startsWith("websocket.", 6)) {
return true;
}
} else if (!isClassName && ch == '/') {
/* 6 == length("javax/") */
if (name.startsWith("websocket/", 6)) {
return true;
}
}
} else if (name.startsWith("org")) {
/* 3 == length("org") */
if (name.length() == 3) {
return false;
}
ch = name.charAt(3);
if (isClassName && ch == '.') {
/* 4 == length("org.") */
if (name.startsWith("apache.", 4)) {
/* 11 == length("org.apache.") */
if (name.startsWith("tomcat.jdbc.", 11)) {
return false;
}
if (name.startsWith("el.", 11) || name.startsWith("catalina.", 11) ||
name.startsWith("jasper.", 11) || name.startsWith("juli.", 11) ||
name.startsWith("tomcat.", 11) || name.startsWith("naming.", 11) ||
name.startsWith("coyote.", 11)) {
return true;
}
}
} else if (!isClassName && ch == '/') {
/* 4 == length("org/") */
if (name.startsWith("apache/", 4)) {
/* 11 == length("org/apache/") */
if (name.startsWith("tomcat/jdbc/", 11)) {
return false;
}
if (name.startsWith("el/", 11) || name.startsWith("catalina/", 11) ||
name.startsWith("jasper/", 11) || name.startsWith("juli/", 11) ||
name.startsWith("tomcat/", 11) || name.startsWith("naming/", 11) ||
name.startsWith("coyote/", 11)) {
return true;
}
}
}
}
return false;
}