From 0a7d64de7861e43f0289f01cd23281d89c4d9c3f Mon Sep 17 00:00:00 2001 From: bystnik Date: Tue, 18 Jan 2022 02:32:41 -0800 Subject: [PATCH] URL decoding for cluster names (#1378) Co-authored-by: Nikita Bystrov --- .../com/provectus/kafka/ui/config/ReadOnlyModeFilter.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/ReadOnlyModeFilter.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/ReadOnlyModeFilter.java index b998748fcc..41b6cc408f 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/ReadOnlyModeFilter.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/config/ReadOnlyModeFilter.java @@ -3,6 +3,8 @@ package com.provectus.kafka.ui.config; import com.provectus.kafka.ui.exception.ClusterNotFoundException; import com.provectus.kafka.ui.exception.ReadOnlyModeException; import com.provectus.kafka.ui.service.ClustersStorage; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.util.regex.Pattern; import lombok.RequiredArgsConstructor; import org.jetbrains.annotations.NotNull; @@ -32,7 +34,8 @@ public class ReadOnlyModeFilter implements WebFilter { } var path = exchange.getRequest().getPath().pathWithinApplication().value(); - var matcher = CLUSTER_NAME_REGEX.matcher(path); + var decodedPath = URLDecoder.decode(path, StandardCharsets.UTF_8); + var matcher = CLUSTER_NAME_REGEX.matcher(decodedPath); if (!matcher.find()) { return chain.filter(exchange); }