Fixed URI regexp regarding user/password part
The regular expression which should handle the user/password part in an URI was potentially processing too many chars. This led to problems when user/pwd and port was specified Change-Id: I87db02494c4b367283e1d00437b1c06d2c8fdd28 Signed-off-by: Christian Halstrick <christian.halstrick@sap.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
cee08c3027
commit
2136095203
|
@ -424,4 +424,27 @@ public void testGetValidWithSlashesDotGitSlashHumanishName()
|
|||
assertEquals("c", humanishName);
|
||||
}
|
||||
|
||||
public void testUserPasswordAndPort() throws URISyntaxException {
|
||||
String str = "http://user:secret@host.xy:80/some/path";
|
||||
URIish u = new URIish(str);
|
||||
assertEquals("http", u.getScheme());
|
||||
assertTrue(u.isRemote());
|
||||
assertEquals("/some/path", u.getPath());
|
||||
assertEquals("host.xy", u.getHost());
|
||||
assertEquals(80, u.getPort());
|
||||
assertEquals("user", u.getUser());
|
||||
assertEquals("secret", u.getPass());
|
||||
assertEquals(u, new URIish(str));
|
||||
|
||||
str = "http://user:secret@pass@host.xy:80/some/path";
|
||||
u = new URIish(str);
|
||||
assertEquals("http", u.getScheme());
|
||||
assertTrue(u.isRemote());
|
||||
assertEquals("/some/path", u.getPath());
|
||||
assertEquals("host.xy", u.getHost());
|
||||
assertEquals(80, u.getPort());
|
||||
assertEquals("user", u.getUser());
|
||||
assertEquals("secret@pass", u.getPass());
|
||||
assertEquals(u, new URIish(str));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
* Copyright (C) 2009, Mykola Nikishov <mn@mn.com.ua>
|
||||
* Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com>
|
||||
* Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
|
||||
* Copyright (C) 2010, Christian Halstrick <christian.halstrick@sap.com>
|
||||
* and other copyright owners as documented in the project's IP log.
|
||||
*
|
||||
* This program and the accompanying materials are made available
|
||||
|
@ -74,7 +75,7 @@ public class URIish implements Serializable {
|
|||
* capturing groups: the first containing the user and the second containing
|
||||
* the password
|
||||
*/
|
||||
private static final String OPT_USER_PWD_P = "(?:([^/]+?)(?::([^/]+?))?@)?";
|
||||
private static final String OPT_USER_PWD_P = "(?:([^/:@]+)(?::([^/]+))?@)?";
|
||||
|
||||
/**
|
||||
* Part of a pattern which matches the optional host part of URIs. Defines
|
||||
|
|
Loading…
Reference in New Issue