From c898b727a87f118f9ced9cfefeab2c73a394bb4d Mon Sep 17 00:00:00 2001 From: lovesh-ap Date: Tue, 27 Feb 2024 10:24:09 +0530 Subject: [PATCH] Add Instrumentention module wildfly-8, extract server port --- .../wildfly-8/build.gradle | 26 ++++++++++++++ .../undertow/HttpListenerService.java | 36 +++++++++++++++++++ settings.gradle | 1 + 3 files changed, 63 insertions(+) create mode 100644 instrumentation-security/wildfly-8/build.gradle create mode 100644 instrumentation-security/wildfly-8/src/main/java/org/wildfly/extension/undertow/HttpListenerService.java diff --git a/instrumentation-security/wildfly-8/build.gradle b/instrumentation-security/wildfly-8/build.gradle new file mode 100644 index 000000000..95fae598e --- /dev/null +++ b/instrumentation-security/wildfly-8/build.gradle @@ -0,0 +1,26 @@ +dependencies { + implementation(project(":newrelic-security-api")) + implementation("com.newrelic.agent.java:newrelic-api:${nrAPIVersion}") + implementation("com.newrelic.agent.java:newrelic-weaver-api:${nrAPIVersion}") + implementation("org.wildfly:wildfly-undertow:26.1.1.Final") { + exclude(group: "org.jacorb", module: "jacorb") + } + implementation("org.jboss.xnio:xnio-api:3.8.7.Final") + implementation("org.jboss.logging:jboss-logging:3.5.0.Final") + implementation("org.jboss.msc:jboss-msc:1.4.13.Final") +} + +jar { + manifest { attributes 'Implementation-Title': 'com.newrelic.instrumentation.security.wildfly-8' } +} + +verifyInstrumentation { + passesOnly 'org.wildfly:wildfly-undertow:[8.0.0.Final,)' + excludeRegex '.*(Alpha|Beta|CR).*' +} + +site { + title 'Wildfly' + type 'Appserver' + versionOverride '[8.0.0.Final,)' +} diff --git a/instrumentation-security/wildfly-8/src/main/java/org/wildfly/extension/undertow/HttpListenerService.java b/instrumentation-security/wildfly-8/src/main/java/org/wildfly/extension/undertow/HttpListenerService.java new file mode 100644 index 000000000..af34c889c --- /dev/null +++ b/instrumentation-security/wildfly-8/src/main/java/org/wildfly/extension/undertow/HttpListenerService.java @@ -0,0 +1,36 @@ +/* + * + * * Copyright 2020 New Relic Corporation. All rights reserved. + * * SPDX-License-Identifier: Apache-2.0 + * + */ + +package org.wildfly.extension.undertow; + +import java.io.IOException; +import java.net.InetSocketAddress; + +import com.newrelic.api.agent.security.NewRelicSecurity; +import org.xnio.ChannelListener; +import org.xnio.StreamConnection; +import org.xnio.XnioWorker; +import org.xnio.channels.AcceptingChannel; + +import com.newrelic.api.agent.weaver.Weave; +import com.newrelic.api.agent.weaver.Weaver; + +/* + * The CAT point cut for wildfly had to be pulled out because + * the jar was not getting loaded correctly. + */ +@Weave +public abstract class HttpListenerService { + + protected void startListening(XnioWorker worker, InetSocketAddress socketAddress, + ChannelListener> acceptListener) throws IOException { + + NewRelicSecurity.getAgent().setApplicationConnectionConfig(socketAddress.getPort(), "http"); + Weaver.callOriginal(); + } + +} diff --git a/settings.gradle b/settings.gradle index 7a020a5ce..2ae118391 100644 --- a/settings.gradle +++ b/settings.gradle @@ -160,6 +160,7 @@ include 'instrumentation:async-http-client-2.0.0' include 'instrumentation:sun-net-httpserver' include 'instrumentation:tomcat-7' include 'instrumentation:tomcat-8' +include 'instrumentation:wildfly-8' include 'instrumentation:grpc-1.4.0' include 'instrumentation:grpc-1.22.0' include 'instrumentation:grpc-1.40.0'