Skip to content

Commit

Permalink
Rename classes to better reflect their counterparts in libddwaf
Browse files Browse the repository at this point in the history
  • Loading branch information
sezen-datadog committed Mar 8, 2025
1 parent 2575c71 commit 3617c08
Show file tree
Hide file tree
Showing 21 changed files with 247 additions and 251 deletions.
5 changes: 2 additions & 3 deletions dd-java-agent/appsec/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ ext {
minimumInstructionCoverage = 0.8
excludedClassesCoverage = [
'com.datadog.appsec.config.MergedAsmData.InvalidAsmDataException',
'com.datadog.appsec.powerwaf.LibSqreenInitialization',
'com.datadog.appsec.powerwaf.PowerWAFModule.PowerWAFDataCallback',
'com.datadog.appsec.ddwaf.LibSqreenInitialization',
'com.datadog.appsec.ddwaf.WAFModule.WAFDataCallback',
'com.datadog.appsec.report.*',
'com.datadog.appsec.config.AppSecConfigServiceImpl.SubscribeFleetServiceRunnable.1',
'com.datadog.appsec.util.StandardizedLogging',
Expand All @@ -89,7 +89,6 @@ ext {
'com.datadog.appsec.config.CurrentAppSecConfig',
// equals() / hashCode() are not well covered
'com.datadog.appsec.config.AppSecConfig.Helper',
'com.datadog.appsec.powerwaf.PowerWAFModule.PowerWAFEventsCallback',
// assert never fails
'com.datadog.appsec.util.StandardizedLogging',
'com.datadog.appsec.util.AbortStartupException',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package datadog.appsec.benchmark;

import ch.qos.logback.classic.Logger;
import io.sqreen.powerwaf.Powerwaf;
import io.sqreen.powerwaf.exception.AbstractPowerwafException;
import io.sqreen.powerwaf.exception.UnsupportedVMException;
import com.datadog.ddwaf.Waf;
import com.datadog.ddwaf.exception.AbstractWafException;
import com.datadog.ddwaf.exception.UnsupportedVMException;
import java.lang.reflect.UndeclaredThrowableException;
import org.slf4j.LoggerFactory;

Expand All @@ -16,10 +16,10 @@ public static void disableLogging() {
}
}

public static void initializePowerwaf() {
public static void initializeWaf() {
try {
Powerwaf.initialize(false);
} catch (AbstractPowerwafException e) {
Waf.initialize(false);
} catch (AbstractWafException e) {
throw new UndeclaredThrowableException(e);
} catch (UnsupportedVMException e) {
throw new UndeclaredThrowableException(e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
import com.datadog.appsec.config.AppSecConfig;
import com.datadog.appsec.config.AppSecConfigDeserializer;
import com.datadog.appsec.event.data.KnownAddresses;
import io.sqreen.powerwaf.Additive;
import io.sqreen.powerwaf.Powerwaf;
import io.sqreen.powerwaf.PowerwafContext;
import io.sqreen.powerwaf.PowerwafMetrics;
import io.sqreen.powerwaf.exception.AbstractPowerwafException;
import com.datadog.ddwaf.Waf;
import com.datadog.ddwaf.WafContext;
import com.datadog.ddwaf.WafHandle;
import com.datadog.ddwaf.WafMetrics;
import com.datadog.ddwaf.exception.AbstractWafException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
Expand All @@ -37,21 +37,21 @@
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(MICROSECONDS)
@Fork(value = 3)
public class PowerwafBenchmark {
public class WafBenchmark {

static {
BenchmarkUtil.disableLogging();
BenchmarkUtil.initializePowerwaf();
BenchmarkUtil.initializeWaf();
}

PowerwafContext ctx;
WafHandle ctx;
Map<String, Object> wafData = new HashMap<>();
Powerwaf.Limits limits = new Powerwaf.Limits(50, 500, 1000, 5000000, 5000000);
Waf.Limits limits = new Waf.Limits(50, 500, 1000, 5000000, 5000000);

@Benchmark
public void withMetrics() throws Exception {
PowerwafMetrics metricsCollector = ctx.createMetrics();
Additive add = ctx.openAdditive();
WafMetrics metricsCollector = ctx.createMetrics();
WafContext add = ctx.openWafContext();
try {
add.run(wafData, limits, metricsCollector);
} finally {
Expand All @@ -61,7 +61,7 @@ public void withMetrics() throws Exception {

@Benchmark
public void withoutMetrics() throws Exception {
Additive add = ctx.openAdditive();
WafContext add = ctx.openWafContext();
try {
add.run(wafData, limits, null);
} finally {
Expand All @@ -70,12 +70,12 @@ public void withoutMetrics() throws Exception {
}

@Setup(Level.Trial)
public void setUp() throws AbstractPowerwafException, IOException {
public void setUp() throws AbstractWafException, IOException {
InputStream stream = getClass().getClassLoader().getResourceAsStream("test_multi_config.json");
Map<String, AppSecConfig> cfg =
Collections.singletonMap("waf", AppSecConfigDeserializer.INSTANCE.deserialize(stream));
AppSecConfig waf = cfg.get("waf");
ctx = Powerwaf.createContext("waf", waf.getRawConfig());
ctx = Waf.createContext("waf", waf.getRawConfig());

wafData.put(KnownAddresses.REQUEST_METHOD.getKey(), "POST");
wafData.put(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
import com.datadog.appsec.blocking.BlockingServiceImpl;
import com.datadog.appsec.config.AppSecConfigService;
import com.datadog.appsec.config.AppSecConfigServiceImpl;
import com.datadog.appsec.ddwaf.WAFModule;
import com.datadog.appsec.event.EventDispatcher;
import com.datadog.appsec.event.ReplaceableEventProducerService;
import com.datadog.appsec.gateway.GatewayBridge;
import com.datadog.appsec.powerwaf.PowerWAFModule;
import com.datadog.appsec.util.AbortStartupException;
import com.datadog.appsec.util.StandardizedLogging;
import datadog.appsec.api.blocking.Blocking;
Expand Down Expand Up @@ -141,7 +141,7 @@ private static void loadModules(EventDispatcher eventDispatcher, Monitoring moni
EventDispatcher.DataSubscriptionSet dataSubscriptionSet =
new EventDispatcher.DataSubscriptionSet();

final List<AppSecModule> modules = Collections.singletonList(new PowerWAFModule(monitoring));
final List<AppSecModule> modules = Collections.singletonList(new WAFModule(monitoring));
for (AppSecModule module : modules) {
log.debug("Starting appsec module {}", module.getName());
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ private void setAppSecActivation(final AppSecFeatures.Asm asm) {
AppSecSystem.setActive(newState);
if (AppSecSystem.isActive()) {
// On remote activation, we need to re-distribute the last known configuration.
// This may trigger initializations, including PowerWAF if it was lazy loaded.
// This may trigger initializations, including WAF if it was lazy loaded.
this.currentAppSecConfig.dirtyStatus.markAllDirty();
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package com.datadog.appsec.powerwaf;
package com.datadog.appsec.ddwaf;

import com.datadog.appsec.util.StandardizedLogging;
import io.sqreen.powerwaf.Powerwaf;
import com.datadog.ddwaf.Waf;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LibSqreenInitialization {
public static final boolean ONLINE = initPowerWAF();
public static final boolean ONLINE = initWAF();

private static boolean initPowerWAF() {
private static boolean initWAF() {
try {
boolean simpleLoad = System.getProperty("POWERWAF_SIMPLE_LOAD") != null;
Powerwaf.initialize(simpleLoad);
Waf.initialize(simpleLoad);
} catch (Exception e) {
Logger logger = LoggerFactory.getLogger(LibSqreenInitialization.class);
logger.warn("Error initializing WAF library", e);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package com.datadog.appsec.powerwaf;
package com.datadog.appsec.ddwaf;

import com.datadog.appsec.config.TraceSegmentPostProcessor;
import com.datadog.appsec.gateway.AppSecRequestContext;
import com.datadog.appsec.report.AppSecEvent;
import com.datadog.ddwaf.RuleSetInfo;
import com.datadog.ddwaf.Waf;
import com.squareup.moshi.JsonAdapter;
import com.squareup.moshi.Moshi;
import com.squareup.moshi.Types;
import datadog.trace.api.internal.TraceSegment;
import datadog.trace.bootstrap.instrumentation.api.Tags;
import io.sqreen.powerwaf.Powerwaf;
import io.sqreen.powerwaf.RuleSetInfo;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;

public class PowerWAFInitializationResultReporter implements TraceSegmentPostProcessor {
public class WAFInitializationResultReporter implements TraceSegmentPostProcessor {
private static final String WAF_VERSION = "_dd.appsec.waf.version";
private static final String RULE_ERRORS = "_dd.appsec.event_rules.errors";
private static final String RULES_LOADED = "_dd.appsec.event_rules.loaded";
Expand Down Expand Up @@ -48,7 +48,7 @@ public void processTraceSegment(
segment.setTagTop(RULE_ERRORS, RULES_ERRORS_ADAPTER.toJson(report.getErrors()));
segment.setTagTop(RULES_LOADED, report.getNumRulesOK());
segment.setTagTop(RULE_ERROR_COUNT, report.getNumRulesError());
segment.setTagTop(WAF_VERSION, Powerwaf.LIB_VERSION);
segment.setTagTop(WAF_VERSION, Waf.LIB_VERSION);

segment.setTagTop(Tags.ASM_KEEP, true);
}
Expand Down
Loading

0 comments on commit 3617c08

Please sign in to comment.