This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 3c55c80 Merge pull request #1808, fix URL parsing problem when user
filed contains '@' characters.
3c55c80 is described below
commit 3c55c802ac4553467d8fa109ac4601f4935d2766
Author: Lei Wei <[email protected]>
AuthorDate: Thu May 17 16:21:30 2018 +0800
Merge pull request #1808, fix URL parsing problem when user filed contains
'@' characters.
Fixed #1470
---
.../src/main/java/com/alibaba/dubbo/common/URL.java | 2 +-
.../src/test/java/com/alibaba/dubbo/common/URLTest.java | 15 +++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java
b/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java
index f96946d..f8a1119 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java
@@ -224,7 +224,7 @@ public final class URL implements Serializable {
path = url.substring(i + 1);
url = url.substring(0, i);
}
- i = url.indexOf("@");
+ i = url.lastIndexOf("@");
if (i >= 0) {
username = url.substring(0, i);
int j = username.indexOf(":");
diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/URLTest.java
b/dubbo-common/src/test/java/com/alibaba/dubbo/common/URLTest.java
index a670c3c..0a19b7a 100644
--- a/dubbo-common/src/test/java/com/alibaba/dubbo/common/URLTest.java
+++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/URLTest.java
@@ -637,4 +637,19 @@ public class URLTest {
parameters.put("version", null);
url.addParameters(parameters);
}
+
+ @Test
+ public void testUserNamePasswordContainsAt(){
+ // Test username or password contains "@"
+ URL url =
URL.valueOf("ad@min:hello@[email protected]:20880/context/path?version=1.0.0&application=morgan");
+ assertNull(url.getProtocol());
+ assertEquals("ad@min", url.getUsername());
+ assertEquals("hello@1234", url.getPassword());
+ assertEquals("10.20.130.230", url.getHost());
+ assertEquals(20880, url.getPort());
+ assertEquals("context/path", url.getPath());
+ assertEquals(2, url.getParameters().size());
+ assertEquals("1.0.0", url.getParameter("version"));
+ assertEquals("morgan", url.getParameter("application"));
+ }
}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
[email protected].