diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroup.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroup.java index e08dc0ac06..0a099df50e 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroup.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroup.java @@ -83,7 +83,7 @@ public final class SsrfSafeAddressResolverGroup extends AddressResolverGroup @@ -140,6 +139,10 @@ public class TbHttpClient { httpClient = httpClient.secure(t -> t.sslContext(sslContext)); } + if (SsrfProtectionValidator.isEnabled()) { + httpClient = httpClient.resolver(SsrfSafeAddressResolverGroup.INSTANCE); + } + validateMaxInMemoryBufferSize(config); this.webClient = WebClient.builder() diff --git a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroupTest.java b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroupTest.java index 79880d98f2..54bfc56a07 100644 --- a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroupTest.java +++ b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/SsrfSafeAddressResolverGroupTest.java @@ -18,7 +18,6 @@ package org.thingsboard.rule.engine.rest; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.resolver.AddressResolver; import io.netty.util.concurrent.EventExecutor; -import io.netty.util.concurrent.Future; import io.netty.util.concurrent.Promise; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; @@ -100,7 +99,7 @@ class SsrfSafeAddressResolverGroupTest { assertThatThrownBy(() -> promise.get(10, TimeUnit.SECONDS)) .isInstanceOf(ExecutionException.class) .hasRootCauseInstanceOf(RuntimeException.class) - .rootCause().hasMessageContaining("SSRF protection"); + .rootCause().hasMessageContaining("is not allowed"); } @Test @@ -116,7 +115,7 @@ class SsrfSafeAddressResolverGroupTest { assertThatThrownBy(() -> promise.get(10, TimeUnit.SECONDS)) .isInstanceOf(ExecutionException.class) .hasRootCauseInstanceOf(RuntimeException.class) - .rootCause().hasMessageContaining("SSRF protection"); + .rootCause().hasMessageContaining("is not allowed"); } @Test @@ -146,4 +145,5 @@ class SsrfSafeAddressResolverGroupTest { assertThat(results).isNotEmpty(); } + }