Skip to content

Commit d1d5d8d

Browse files
committed
Merge branch 'refs/heads/main' into feature/api-endpoint/Servlet-NR-273606
# Conflicts: # instrumentation-security/servlet-3.0/src/main/java/com/newrelic/agent/security/instrumentation/servlet30/HttpServletHelper.java
2 parents 357624a + 08b06c7 commit d1d5d8d

File tree

239 files changed

+4513
-1020
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

239 files changed

+4513
-1020
lines changed

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# The agent version.
2-
agentVersion=1.4.1
3-
jsonVersion=1.2.5
2+
agentVersion=1.4.2
3+
jsonVersion=1.2.7
44
# Updated exposed NR APM API version.
55
nrAPIVersion=8.12.0
66

instrumentation-security/akka-http-2.11_10.0.0/src/main/scala/akka/http/scaladsl/server/AkkaCoreUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ public static boolean acquireServletLockIfPossible() {
6060
}
6161

6262
public static void postProcessHttpRequest(Boolean isServletLockAcquired, StringBuilder responseBody, String contentType, String className, String methodName, Token token) {
63+
if(NewRelicSecurity.getAgent().getIastDetectionCategory().getRxssEnabled()){
64+
return;
65+
}
6366
try {
6467
token.linkAndExpire();
6568
ServletHelper.executeBeforeExitingTransaction();

instrumentation-security/akka-http-core-10.0/src/main/scala/akka/http/scaladsl/AkkaCoreUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ public static boolean acquireServletLockIfPossible() {
6363

6464
public static void postProcessHttpRequest(Boolean isServletLockAcquired, StringBuilder response, String contentType, int responseCode, String className, String methodName, Token token) {
6565
try {
66+
if(NewRelicSecurity.getAgent().getIastDetectionCategory().getRxssEnabled()){
67+
return;
68+
}
6669
token.linkAndExpire();
6770

6871
if(!isServletLockAcquired || !NewRelicSecurity.isHookProcessingActive()){

instrumentation-security/akka-http-core-10.0/src/main/scala/akka/http/scaladsl/HttpExt_Instrumentation.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.newrelic.api.agent.security.schema.AbstractOperation;
2121
import com.newrelic.api.agent.security.schema.SecurityMetaData;
2222
import com.newrelic.api.agent.security.schema.StringUtils;
23+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
2324
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
2425
import com.newrelic.api.agent.security.schema.operation.SSRFOperation;
2526
import com.newrelic.api.agent.security.utils.SSRFUtils;
@@ -65,7 +66,7 @@ public Future<Http.ServerBinding> bindAndHandleSync(
6566
public Future<HttpResponse> singleRequest(HttpRequest httpRequest, HttpsConnectionContext connectionContext, ConnectionPoolSettings settings,
6667
LoggingAdapter log, Materializer fm) {
6768

68-
boolean isLockAcquired = acquireLockIfPossible();
69+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.HTTP_REQUEST);
6970
AbstractOperation operation = null;
7071
// Preprocess Phase
7172
if (isLockAcquired) {
@@ -163,9 +164,9 @@ private void releaseLock() {
163164
}
164165
}
165166

166-
private boolean acquireLockIfPossible() {
167+
private boolean acquireLockIfPossible(VulnerabilityCaseType httpRequest) {
167168
try {
168-
return GenericHelper.acquireLockIfPossible(AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
169+
return GenericHelper.acquireLockIfPossible(httpRequest, AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
169170
} catch (Throwable ignored) {
170171
}
171172
return false;

instrumentation-security/akka-http-core-2.11_10.0.11/src/main/scala/akka/http/scaladsl/AkkaCoreUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ public static boolean acquireServletLockIfPossible() {
6363

6464
public static void postProcessHttpRequest(Boolean isServletLockAcquired, StringBuilder responseBody, String contentType, int responseCode, String className, String methodName, Token token) {
6565
try {
66+
if(NewRelicSecurity.getAgent().getIastDetectionCategory().getRxssEnabled()){
67+
return;
68+
}
6669
token.linkAndExpire();
6770

6871
if(!isServletLockAcquired || !NewRelicSecurity.isHookProcessingActive()){

instrumentation-security/akka-http-core-2.11_10.0.11/src/main/scala/akka/http/scaladsl/HttpExt_Instrumentation.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.newrelic.api.agent.security.schema.AbstractOperation;
2121
import com.newrelic.api.agent.security.schema.SecurityMetaData;
2222
import com.newrelic.api.agent.security.schema.StringUtils;
23+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
2324
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
2425
import com.newrelic.api.agent.security.schema.operation.SSRFOperation;
2526
import com.newrelic.api.agent.security.utils.SSRFUtils;
@@ -66,7 +67,7 @@ public Future<Http.ServerBinding> bindAndHandleSync(
6667
public Future<HttpResponse> singleRequestImpl(HttpRequest httpRequest, HttpsConnectionContext connectionContext, ConnectionPoolSettings poolSettings,
6768
LoggingAdapter loggingAdapter) {
6869

69-
boolean isLockAcquired = acquireLockIfPossible();
70+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.HTTP_REQUEST);
7071
AbstractOperation operation = null;
7172
// Preprocess Phase
7273
SecurityMetaData securityMetaData = NewRelicSecurity.getAgent().getSecurityMetaData();
@@ -167,9 +168,9 @@ private void releaseLock() {
167168
}
168169
}
169170

170-
private boolean acquireLockIfPossible() {
171+
private boolean acquireLockIfPossible(VulnerabilityCaseType httpRequest) {
171172
try {
172-
return GenericHelper.acquireLockIfPossible(AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
173+
return GenericHelper.acquireLockIfPossible(httpRequest, AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
173174
} catch (Throwable ignored) {
174175
}
175176
return false;

instrumentation-security/akka-http-core-2.13_10.1.8/src/main/scala/akka/http/scaladsl/AkkaCoreUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ public static boolean acquireServletLockIfPossible() {
6363

6464
public static void postProcessHttpRequest(Boolean isServletLockAcquired, StringBuilder responseBody, String contentType, int responseCode, String className, String methodName, Token token) {
6565
try {
66+
if(NewRelicSecurity.getAgent().getIastDetectionCategory().getRxssEnabled()){
67+
return;
68+
}
6669
token.linkAndExpire();
6770
if(!isServletLockAcquired || !NewRelicSecurity.isHookProcessingActive()){
6871
return;

instrumentation-security/akka-http-core-2.13_10.1.8/src/main/scala/akka/http/scaladsl/HttpExt_Instrumentation.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.newrelic.api.agent.security.schema.AbstractOperation;
2121
import com.newrelic.api.agent.security.schema.SecurityMetaData;
2222
import com.newrelic.api.agent.security.schema.StringUtils;
23+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
2324
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
2425
import com.newrelic.api.agent.security.schema.operation.SSRFOperation;
2526
import com.newrelic.api.agent.security.utils.SSRFUtils;
@@ -66,7 +67,7 @@ public Future<Http.ServerBinding> bindAndHandleSync(
6667
public Future<HttpResponse> singleRequestImpl(HttpRequest httpRequest, HttpsConnectionContext connectionContext, ConnectionPoolSettings poolSettings,
6768
LoggingAdapter loggingAdapter) {
6869

69-
boolean isLockAcquired = acquireLockIfPossible();
70+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.HTTP_REQUEST);
7071
AbstractOperation operation = null;
7172
// Preprocess Phase
7273
SecurityMetaData securityMetaData = NewRelicSecurity.getAgent().getSecurityMetaData();
@@ -167,9 +168,9 @@ private void releaseLock() {
167168
}
168169
}
169170

170-
private boolean acquireLockIfPossible() {
171+
private boolean acquireLockIfPossible(VulnerabilityCaseType httpRequest) {
171172
try {
172-
return GenericHelper.acquireLockIfPossible(AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
173+
return GenericHelper.acquireLockIfPossible(httpRequest, AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
173174
} catch (Throwable ignored) {
174175
}
175176
return false;

instrumentation-security/akka-http-core-2.13_10.2.0/src/main/scala/akka/http/scaladsl/AkkaCoreUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ public static boolean acquireServletLockIfPossible() {
6363

6464
public static void postProcessHttpRequest(Boolean isServletLockAcquired, StringBuilder responseBody, String contentType, int responseCode, String className, String methodName, Token token) {
6565
try {
66+
if(NewRelicSecurity.getAgent().getIastDetectionCategory().getRxssEnabled()){
67+
return;
68+
}
6669
token.linkAndExpire();
6770
if(!isServletLockAcquired || !NewRelicSecurity.isHookProcessingActive()){
6871
return;

instrumentation-security/akka-http-core-2.13_10.2.0/src/main/scala/akka/http/scaladsl/HttpExt_Instrumentation.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.newrelic.api.agent.security.schema.AbstractOperation;
2323
import com.newrelic.api.agent.security.schema.SecurityMetaData;
2424
import com.newrelic.api.agent.security.schema.StringUtils;
25+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
2526
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
2627
import com.newrelic.api.agent.security.schema.operation.SSRFOperation;
2728
import com.newrelic.api.agent.security.utils.SSRFUtils;
@@ -74,7 +75,7 @@ public Future<HttpResponse> singleRequest(HttpRequest httpRequest, HttpsConnecti
7475
LoggingAdapter loggingAdapter) {
7576
final Segment segment = NewRelic.getAgent().getTransaction().startSegment("Akka", "singleRequest");
7677

77-
boolean isLockAcquired = acquireLockIfPossible();
78+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.HTTP_REQUEST);
7879
AbstractOperation operation = null;
7980
// Preprocess Phase
8081
SecurityMetaData securityMetaData = NewRelicSecurity.getAgent().getSecurityMetaData();
@@ -176,9 +177,9 @@ private void releaseLock() {
176177
}
177178
}
178179

179-
private boolean acquireLockIfPossible() {
180+
private boolean acquireLockIfPossible(VulnerabilityCaseType httpRequest) {
180181
try {
181-
return GenericHelper.acquireLockIfPossible(AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
182+
return GenericHelper.acquireLockIfPossible(httpRequest, AkkaCoreUtils.NR_SEC_CUSTOM_ATTRIB_NAME, this.hashCode());
182183
} catch (Throwable ignored) {
183184
}
184185
return false;

instrumentation-security/apache-ldap/src/main/java/org/apache/directory/ldap/client/api/LdapAsyncConnection_Instrumentation.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.newrelic.api.agent.security.instrumentation.helpers.GenericHelper;
55
import com.newrelic.api.agent.security.schema.AbstractOperation;
66
import com.newrelic.api.agent.security.schema.StringUtils;
7+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
78
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
89
import com.newrelic.api.agent.security.schema.operation.LDAPOperation;
910
import com.newrelic.api.agent.security.utils.logging.LogLevel;
@@ -61,16 +62,16 @@ private void releaseLock() {
6162
} catch (Throwable ignored) {}
6263
}
6364

64-
private boolean acquireLockIfPossible() {
65+
private boolean acquireLockIfPossible(VulnerabilityCaseType caseType) {
6566
try {
66-
return GenericHelper.acquireLockIfPossible(LDAPUtils.NR_SEC_CUSTOM_ATTRIB_NAME);
67+
return GenericHelper.acquireLockIfPossible(caseType, LDAPUtils.NR_SEC_CUSTOM_ATTRIB_NAME);
6768
} catch (Throwable ignored) {}
6869
return false;
6970
}
7071

7172
public SearchFuture searchAsync(Dn baseDn, String filter, SearchScope scope, String... attributes )
7273
throws LdapException {
73-
boolean isLockAcquired = acquireLockIfPossible();
74+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.LDAP);
7475
AbstractOperation operation = null;
7576
if(isLockAcquired) {
7677
operation = preprocessSecurityHook(baseDn.getName(), filter, LDAPUtils.METHOD_SEARCH_ASYNC);
@@ -90,7 +91,7 @@ public SearchFuture searchAsync(Dn baseDn, String filter, SearchScope scope, Str
9091

9192
public SearchFuture searchAsync(String baseDn, String filter, SearchScope scope, String... attributes )
9293
throws LdapException {
93-
boolean isLockAcquired = acquireLockIfPossible();
94+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.LDAP);
9495
AbstractOperation operation = null;
9596
if(isLockAcquired) {
9697
operation = preprocessSecurityHook(baseDn, filter, LDAPUtils.METHOD_SEARCH_ASYNC);
@@ -109,7 +110,7 @@ public SearchFuture searchAsync(String baseDn, String filter, SearchScope scope,
109110
}
110111

111112
public SearchFuture searchAsync( SearchRequest searchRequest ) throws LdapException {
112-
boolean isLockAcquired = acquireLockIfPossible();
113+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.LDAP);
113114
AbstractOperation operation = null;
114115
if(isLockAcquired) {
115116
operation = preprocessSecurityHook(searchRequest.getBase().getName(), searchRequest.getFilter().toString(), LDAPUtils.METHOD_SEARCH_ASYNC);

instrumentation-security/apache-ldap/src/main/java/org/apache/directory/ldap/client/api/LdapConnection_Instrumentation.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.newrelic.api.agent.security.instrumentation.helpers.GenericHelper;
55
import com.newrelic.api.agent.security.schema.AbstractOperation;
66
import com.newrelic.api.agent.security.schema.StringUtils;
7+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
78
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
89
import com.newrelic.api.agent.security.schema.operation.LDAPOperation;
910
import com.newrelic.api.agent.security.utils.logging.LogLevel;
@@ -61,16 +62,16 @@ private void releaseLock() {
6162
} catch (Throwable ignored) {}
6263
}
6364

64-
private boolean acquireLockIfPossible() {
65+
private boolean acquireLockIfPossible(VulnerabilityCaseType caseType) {
6566
try {
66-
return GenericHelper.acquireLockIfPossible(LDAPUtils.NR_SEC_CUSTOM_ATTRIB_NAME);
67+
return GenericHelper.acquireLockIfPossible(caseType, LDAPUtils.NR_SEC_CUSTOM_ATTRIB_NAME);
6768
} catch (Throwable ignored) {}
6869
return false;
6970
}
7071

7172
public EntryCursor search(Dn baseDn, String filter, SearchScope scope, String... attributes )
7273
throws LdapException {
73-
boolean isLockAcquired = acquireLockIfPossible();
74+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.LDAP);
7475
AbstractOperation operation = null;
7576
if(isLockAcquired) {
7677
operation = preprocessSecurityHook(baseDn.getName(), filter, LDAPUtils.METHOD_SEARCH);
@@ -90,7 +91,7 @@ public EntryCursor search(Dn baseDn, String filter, SearchScope scope, String...
9091

9192
public EntryCursor search( String baseDn, String filter, SearchScope scope, String... attributes )
9293
throws LdapException {
93-
boolean isLockAcquired = acquireLockIfPossible();
94+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.LDAP);
9495
AbstractOperation operation = null;
9596
if(isLockAcquired) {
9697
operation = preprocessSecurityHook(baseDn, filter, LDAPUtils.METHOD_SEARCH);
@@ -109,7 +110,7 @@ public EntryCursor search( String baseDn, String filter, SearchScope scope, Stri
109110
}
110111

111112
public SearchCursor search(SearchRequest searchRequest ) throws LdapException {
112-
boolean isLockAcquired = acquireLockIfPossible();
113+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.LDAP);
113114
AbstractOperation operation = null;
114115
if(isLockAcquired) {
115116
operation = preprocessSecurityHook(searchRequest.getBase().getName(), searchRequest.getFilter().toString(), LDAPUtils.METHOD_SEARCH);

instrumentation-security/apache-tomcat-10/src/main/java/com/newrelic/agent/security/instrumentation/apache/tomcat10/HttpServletHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.newrelic.api.agent.security.instrumentation.helpers.GenericHelper;
55
import com.newrelic.api.agent.security.instrumentation.helpers.URLMappingsHelper;
66
import com.newrelic.api.agent.security.schema.ApplicationURLMapping;
7+
import com.newrelic.api.agent.security.schema.StringUtils;
78
import com.newrelic.api.agent.security.utils.logging.LogLevel;
89

910
import jakarta.servlet.ServletContext;
@@ -37,6 +38,10 @@ private static void getJSPMappings(ServletContext servletContext, String dir) {
3738
if(dir.endsWith(SEPARATOR)){
3839
Collection<String> resourcePaths = servletContext.getResourcePaths(dir);
3940
for (String path : resourcePaths) {
41+
String entry = StringUtils.removeStart(StringUtils.removeEnd(path, SEPARATOR), StringUtils.SEPARATOR);
42+
if (StringUtils.equalsAny(entry, "META-INF", "WEB-INF")) {
43+
continue;
44+
}
4045
if(path.endsWith(SEPARATOR)) {
4146
getJSPMappings(servletContext, path);
4247
}

instrumentation-security/apache-tomcat-7/src/main/java/com/newrelic/agent/security/instrumentation/apache/tomcat7/HttpServletHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.newrelic.api.agent.security.instrumentation.helpers.GenericHelper;
55
import com.newrelic.api.agent.security.instrumentation.helpers.URLMappingsHelper;
66
import com.newrelic.api.agent.security.schema.ApplicationURLMapping;
7+
import com.newrelic.api.agent.security.schema.StringUtils;
78
import com.newrelic.api.agent.security.utils.logging.LogLevel;
89

910
import javax.servlet.ServletContext;
@@ -36,6 +37,10 @@ private static void getJSPMappings(ServletContext servletContext, String dir) {
3637
if(dir.endsWith(SEPARATOR)){
3738
Collection<String> resourcePaths = servletContext.getResourcePaths(dir);
3839
for (String path : resourcePaths) {
40+
String entry = StringUtils.removeStart(StringUtils.removeEnd(path, SEPARATOR), StringUtils.SEPARATOR);
41+
if (StringUtils.equalsAny(entry, "META-INF", "WEB-INF")) {
42+
continue;
43+
}
3944
if(path.endsWith(SEPARATOR)) {
4045
getJSPMappings(servletContext, path);
4146
}

instrumentation-security/async-http-client-2.0.0/src/main/java/com/newrelic/agent/security/instrumentation/org/asynchttpclient/AsynchttpHelper.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.newrelic.api.agent.security.instrumentation.helpers.ServletHelper;
66
import com.newrelic.api.agent.security.schema.AbstractOperation;
77
import com.newrelic.api.agent.security.schema.StringUtils;
8+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
89
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
910
import com.newrelic.api.agent.security.schema.operation.SSRFOperation;
1011
import com.newrelic.api.agent.security.utils.SSRFUtils;
@@ -36,15 +37,8 @@ public static boolean isLockAcquired() {
3637
return false;
3738
}
3839

39-
public static boolean acquireLockIfPossible() {
40-
try {
41-
if (NewRelicSecurity.isHookProcessingActive() &&
42-
!isLockAcquired()) {
43-
NewRelicSecurity.getAgent().getSecurityMetaData().addCustomAttribute(getNrSecCustomAttribName(), true);
44-
return true;
45-
}
46-
} catch (Throwable ignored){}
47-
return false;
40+
public static boolean acquireLockIfPossible(VulnerabilityCaseType httpRequest) {
41+
return GenericHelper.acquireLockIfPossible(httpRequest, getNrSecCustomAttribName());
4842
}
4943

5044
public static void releaseLock() {

instrumentation-security/async-http-client-2.0.0/src/main/java/org/asynchttpclient/AsyncHttpClient_Instrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.newrelic.api.agent.security.NewRelicSecurity;
1010
import com.newrelic.api.agent.security.instrumentation.helpers.GenericHelper;
1111
import com.newrelic.api.agent.security.schema.AbstractOperation;
12+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
1213
import com.newrelic.api.agent.security.utils.logging.LogLevel;
1314
import com.newrelic.api.agent.weaver.MatchType;
1415
import com.newrelic.api.agent.weaver.Weave;
@@ -27,7 +28,7 @@ public abstract class AsyncHttpClient_Instrumentation {
2728

2829
public <T> ListenableFuture<T> executeRequest(Request request, AsyncHandler<T> handler) {
2930
URI uri = null;
30-
boolean isLockAcquired = AsynchttpHelper.acquireLockIfPossible();
31+
boolean isLockAcquired = AsynchttpHelper.acquireLockIfPossible(VulnerabilityCaseType.HTTP_REQUEST);
3132
AbstractOperation operation = null;
3233
if(isLockAcquired) {
3334
try {

instrumentation-security/camel-xpath/src/main/java/org/apache/camel/builder/BuilderSupport_Instrumentation.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.newrelic.api.agent.security.instrumentation.helpers.GenericHelper;
55
import com.newrelic.api.agent.security.schema.AbstractOperation;
66
import com.newrelic.api.agent.security.schema.StringUtils;
7+
import com.newrelic.api.agent.security.schema.VulnerabilityCaseType;
78
import com.newrelic.api.agent.security.schema.exceptions.NewRelicSecurityException;
89
import com.newrelic.api.agent.security.schema.operation.XPathOperation;
910
import com.newrelic.api.agent.security.utils.logging.LogLevel;
@@ -56,15 +57,15 @@ private void releaseLock() {
5657
} catch (Throwable ignored) {}
5758
}
5859

59-
private boolean acquireLockIfPossible() {
60+
private boolean acquireLockIfPossible(VulnerabilityCaseType xpath) {
6061
try {
61-
return GenericHelper.acquireLockIfPossible(XPATHUtils.NR_SEC_CUSTOM_ATTRIB_NAME);
62+
return GenericHelper.acquireLockIfPossible(xpath, XPATHUtils.NR_SEC_CUSTOM_ATTRIB_NAME);
6263
} catch (Throwable ignored) {}
6364
return false;
6465
}
6566

6667
public ValueBuilder xpath(String value, Class<?> resultType, Namespaces namespaces) {
67-
boolean isLockAcquired = acquireLockIfPossible();
68+
boolean isLockAcquired = acquireLockIfPossible(VulnerabilityCaseType.XPATH);
6869
AbstractOperation operation = null;
6970
if(isLockAcquired) {
7071
operation = preprocessSecurityHook(value, XPATHUtils.METHOD_XPATH);

0 commit comments

Comments
 (0)