From fff423cb789b9859eebf26551eb5db7005c38051 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 24 Jun 2024 13:53:29 +0300 Subject: [PATCH] Fixed - encoded user/password in URL aren't accepted #5983 --- redisson/src/main/java/org/redisson/misc/RedisURI.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/redisson/src/main/java/org/redisson/misc/RedisURI.java b/redisson/src/main/java/org/redisson/misc/RedisURI.java index 94ff3271b..c973be6eb 100644 --- a/redisson/src/main/java/org/redisson/misc/RedisURI.java +++ b/redisson/src/main/java/org/redisson/misc/RedisURI.java @@ -17,9 +17,12 @@ package org.redisson.misc; import io.netty.util.NetUtil; +import java.io.UnsupportedEncodingException; import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.URL; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.util.Objects; /** @@ -60,15 +63,15 @@ public final class RedisURI { String[] details = url.getUserInfo().split(":", 2); if (details.length == 2) { if (!details[0].isEmpty()) { - username = details[0]; + username = URLDecoder.decode(details[0], StandardCharsets.UTF_8.toString()); } - password = details[1]; + password = URLDecoder.decode(details[1], StandardCharsets.UTF_8.toString()); } } host = url.getHost(); port = url.getPort(); ssl = uri.startsWith("rediss://"); - } catch (MalformedURLException e) { + } catch (MalformedURLException | UnsupportedEncodingException e) { throw new IllegalArgumentException(e); } }