@@ -112,29 +112,39 @@ public byte[] transform(final ClassLoader loader,
112112 final Class <?> classBeingRedefined ,
113113 final ProtectionDomain protectionDomain ,
114114 final byte [] srcByteCodeArray ) {
115+ String threadName = Thread .currentThread ().getName ();
116+ if (threadName .startsWith ("DongTai-IAST-Core" )
117+ || threadName .startsWith ("DongTai-IAST-AgentStateMonitor" )
118+ || threadName .startsWith ("DongTai-IAST-ConfigMonitor" )
119+ || threadName .startsWith ("DongTai-IAST-FallbackConfigMonitor" )
120+ || threadName .startsWith ("DongTai-IAST-HearBeatMonitor" )
121+ || threadName .startsWith ("DongTai-IAST-PerformanceMonitor" )) {
122+ return null ;
123+ }
124+
125+ if (internalClassName == null
126+ || internalClassName .startsWith ("io/dongtai/" )
127+ || internalClassName .startsWith ("com/secnium/iast/" )
128+ || internalClassName .startsWith ("java/lang/iast/" )
129+ || internalClassName .startsWith ("cn/huoxian/iast/" )
130+ || internalClassName .startsWith ("META-INF/" )
131+ || "module-info" .equals (internalClassName )) {
132+ return null ;
133+ }
134+
135+ if (null != loader && loader .toString ().toLowerCase ().contains ("rasp" )) {
136+ return null ;
137+ }
138+
115139 try {
116140 ScopeManager .SCOPE_TRACKER .getPolicyScope ().enterAgent ();
117141
118- if (internalClassName == null
119- || internalClassName .startsWith ("io/dongtai/" )
120- || internalClassName .startsWith ("com/secnium/iast/" )
121- || internalClassName .startsWith ("java/lang/iast/" )
122- || internalClassName .startsWith ("cn/huoxian/iast/" )
123- || internalClassName .startsWith ("META-INF/" )
124- || "module-info" .equals (internalClassName )) {
125- return null ;
126- }
127-
128142 if (" com/alibaba/fastjson/JSON" .substring (1 ).equals (internalClassName )) {
129143 FastjsonCheck .setJsonClassLoader (loader );
130144 } else if (" com/alibaba/fastjson/parser/ParserConfig" .substring (1 ).equals (internalClassName )) {
131145 FastjsonCheck .setParseConfigClassLoader (loader );
132146 }
133147
134- if (null != loader && loader .toString ().toLowerCase ().contains ("rasp" )) {
135- return null ;
136- }
137-
138148 if (loader != null && protectionDomain != null ) {
139149 final CodeSource codeSource = protectionDomain .getCodeSource ();
140150 if (codeSource == null ) {
@@ -156,7 +166,6 @@ public byte[] transform(final ClassLoader loader,
156166
157167 ClassContext classContext = new ClassContext (cr , loader );
158168 if (Modifier .isInterface (classContext .getModifier ())) {
159- sourceCodeBak = null ;
160169 return null ;
161170 }
162171 final String className = classContext .getClassName ();
@@ -183,14 +192,14 @@ public byte[] transform(final ClassLoader loader,
183192 transformMap .put (classBeingRedefined , srcByteCodeArray );
184193 }
185194 transformCount ++;
195+ classDiagram .setLoader (null );
186196 return dumpClassIfNecessary (cr .getClassName (), cw .toByteArray (), srcByteCodeArray );
187197 }
188198 }
189- sourceCodeBak = null ;
199+ classDiagram . setLoader ( null ) ;
190200 } catch (Throwable throwable ) {
191201 DongTaiLog .warn (ErrorCode .get ("TRANSFORM_CLASS_FAILED" ), internalClassName , throwable );
192202 } finally {
193- classDiagram .setLoader (null );
194203 ScopeManager .SCOPE_TRACKER .getPolicyScope ().leaveAgent ();
195204 }
196205
0 commit comments