Skip to content

Commit 2089393

Browse files
authored
Merge pull request #294 from Nizernizer/main
Add start param/Hook fastjson/support tomcat10
2 parents b93e60b + 549fb11 commit 2089393

File tree

4 files changed

+41
-15
lines changed

4 files changed

+41
-15
lines changed

dongtai-agent/src/main/java/io/dongtai/iast/agent/Agent.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ private static String[] parseAgentArgs(String[] args) throws ParseException {
2929
attachOptions.addOption(build("cluster_version", "cluster_version", "optional: Application Cluster Version"));
3030
attachOptions.addOption(build("dongtai_server", "dongtai_server", "optional: DongTai server url"));
3131
attachOptions.addOption(build("dongtai_token", "dongtai_token", "optional: DongTai server token"));
32+
attachOptions.addOption(build("server_package", "server_package", "optional: DongTai core package download way."));
33+
attachOptions.addOption(build("log_level", "log_level", "optional: DongTai agent log print level."));
34+
attachOptions.addOption(build("log_path", "log_path", "optional: DongTai agent log print path."));
3235

3336
CommandLineParser parser = new DefaultParser();
3437
HelpFormatter formatter = new HelpFormatter();
@@ -70,6 +73,15 @@ private static String[] parseAgentArgs(String[] args) throws ParseException {
7073
if (result.hasOption("dongtai_token")) {
7174
attachArgs.append("&dongtaiToken=").append(result.getOptionValue("dongtai_token"));
7275
}
76+
if (result.hasOption("server_package")) {
77+
attachArgs.append("&serverPackage=").append(result.getOptionValue("server_package"));
78+
}
79+
if (result.hasOption("log_level")) {
80+
attachArgs.append("&logLevel=").append(result.getOptionValue("log_level"));
81+
}
82+
if (result.hasOption("log_path")) {
83+
attachArgs.append("&logPath=").append(result.getOptionValue("log_path"));
84+
}
7385
return new String[]{pid, attachArgs.toString()};
7486
} else {
7587
formatter.printHelp("java -jar agent.jar", attachOptions, true);

dongtai-agent/src/main/java/io/dongtai/iast/agent/AgentLauncher.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.HashMap;
1313
import java.util.Map;
1414
import java.util.UUID;
15+
import java.util.concurrent.TimeUnit;
1516

1617
/**
1718
@@ -55,6 +56,11 @@ public class AgentLauncher {
5556
* @param inst inst
5657
*/
5758
public static void premain(String args, Instrumentation inst) {
59+
try {
60+
TimeUnit.SECONDS.sleep(5);
61+
} catch (InterruptedException e) {
62+
e.printStackTrace();
63+
}
5864
if (System.getProperty("protect.by.dongtai", null) != null) {
5965
return;
6066
}
@@ -116,6 +122,15 @@ public static void agentmain(String args, Instrumentation inst) {
116122
if (argsMap.containsKey("dongtaiToken")) {
117123
System.setProperty("dongtai.server.token", argsMap.get("dongtaiToken"));
118124
}
125+
if (argsMap.containsKey("serverPackage")) {
126+
System.setProperty("dongtai.server.package", argsMap.get("serverPackage"));
127+
}
128+
if (argsMap.containsKey("logLevel")) {
129+
System.setProperty("dongtai.log.level", argsMap.get("logLevel"));
130+
}
131+
if (argsMap.containsKey("logPath")) {
132+
System.setProperty("dongtai.log.path", argsMap.get("logPath"));
133+
}
119134
install(inst);
120135
} catch (Exception e) {
121136
DongTaiLog.error(e);

dongtai-core/src/main/java/io/dongtai/iast/core/bytecode/enhance/plugin/framework/j2ee/dispatch/ServletDispatcherAdapter.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ public class ServletDispatcherAdapter extends AbstractClassVisitor {
1818
private final String SERVLET_REQUEST = " javax.servlet.ServletRequest".substring(1);
1919
private final String SERVLET_RESPONSE = " javax.servlet.ServletResponse".substring(1);
2020
private final String FILTER_CHAIN = " javax.servlet.FilterChain".substring(1);
21-
private final String JAKARTA_SERVLET_REQUEST = " jakarta.servlet.http.HttpServletRequest".substring(1);
22-
private final String JAKARTA_SERVLET_RESPONSE = " jakarta.servlet.http.HttpServletResponse".substring(1);
23-
21+
private final String JAKARTA_SERVLET_REQUEST_HTTP = " jakarta.servlet.http.HttpServletRequest".substring(1);
22+
private final String JAKARTA_SERVLET_REQUEST = " jakarta.servlet.ServletRequest".substring(1);
23+
private final String JAKARTA_SERVLET_RESPONSE_HTTP = " jakarta.servlet.http.HttpServletResponse".substring(1);
24+
private final String JAKARTA_SERVLET_RESPONSE = " jakarta.servlet.ServletResponse".substring(1);
2425

2526
private final boolean isFaces;
2627
private final boolean isJakarta;
@@ -75,9 +76,7 @@ private boolean isServiceArgs(Type[] typeOfArgs) {
7576
}
7677

7778
private boolean isJakartaArgs(Type[] typeOfArgs) {
78-
return typeOfArgs.length == 2 &&
79-
JAKARTA_SERVLET_REQUEST.equals(typeOfArgs[0].getClassName()) &&
80-
JAKARTA_SERVLET_RESPONSE.equals(typeOfArgs[1].getClassName());
79+
return typeOfArgs.length == 2 && ((JAKARTA_SERVLET_REQUEST_HTTP.equals(typeOfArgs[0].getClassName()) && JAKARTA_SERVLET_RESPONSE_HTTP.equals(typeOfArgs[1].getClassName())) || (JAKARTA_SERVLET_REQUEST.equals(typeOfArgs[0].getClassName()) && JAKARTA_SERVLET_RESPONSE.equals(typeOfArgs[1].getClassName())));
8180
}
8281

8382
private boolean isFacesArgs(Type[] typeOfArgs) {

dongtai-core/src/main/resources/com.secnium.iast.resources/blacklist.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ com/github/benmanes/caffeine/*
4040
org/springframework/cloud/sleuth/*
4141
io/netty/handler/codec/*
4242
# fastjson
43-
com/alibaba/fastjson/*
43+
# com/alibaba/fastjson/*
4444
# old rule
4545
EDU/oswego/cs/dl/util/concurrent/BoundedChannel
4646
EDU/oswego/cs/dl/util/concurrent/BoundedLinkedQueue
@@ -33759,14 +33759,14 @@ org/apache/jasper/runtime/VariableMapperImpl
3375933759
org/apache/jasper/runtime/VariableResolverImpl
3376033760
org/apache/jasper/security/SecurityClassLoad
3376133761
org/apache/jasper/security/SecurityUtil
33762-
org/apache/jasper/servlet/JasperInitializer
33763-
org/apache/jasper/servlet/JasperLoader
33764-
org/apache/jasper/servlet/JasperLoader$PrivilegedLoadClass
33765-
org/apache/jasper/servlet/JspServlet
33766-
org/apache/jasper/servlet/JspCServletContext
33767-
org/apache/jasper/servlet/JspServletWrapper
33768-
org/apache/jasper/servlet/TldScanner
33769-
org/apache/jasper/servlet/TldScanner$TldScannerCallback
33762+
# org/apache/jasper/servlet/JasperInitializer
33763+
# org/apache/jasper/servlet/JasperLoader
33764+
# org/apache/jasper/servlet/JasperLoader$PrivilegedLoadClass
33765+
# org/apache/jasper/servlet/JspServlet
33766+
# org/apache/jasper/servlet/JspCServletContext
33767+
# org/apache/jasper/servlet/JspServletWrapper
33768+
# org/apache/jasper/servlet/TldScanner
33769+
# org/apache/jasper/servlet/TldScanner$TldScannerCallback
3377033770
org/apache/jasper/TrimSpacesOption
3377133771
org/apache/jasper/util/SimplePool
3377233772
org/apache/jasper/util/SystemLogHandler

0 commit comments

Comments
 (0)