Mercurial > hg > mercurial
changeset 125:a13422ae169d
Rewrite containsCredentials using java.util.URI
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Tue, 28 Sep 2010 12:49:37 +0400 |
parents | 7b8fcccecf05 |
children | 8eab713b01a4 |
files | mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/Settings.java |
diffstat | 1 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/Settings.java Tue Sep 28 12:31:48 2010 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/Settings.java Tue Sep 28 12:49:37 2010 +0400 @@ -23,6 +23,8 @@ import org.jetbrains.annotations.NotNull; import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; import java.util.HashSet; import java.util.Set; @@ -130,15 +132,18 @@ } private boolean containsCredentials(final String repository) { - for (String proto: AUTH_PROTOS) { - if (repository.startsWith(proto)) { - String withoutProto = repository.substring(proto.length()); - int comma = withoutProto.indexOf(':'); - int at = withoutProto.indexOf('@'); - if (at != -1 && comma != -1 && at > comma) return true; + try { + URI repositoryURI = new URI(repository); + String scheme = repositoryURI.getScheme(); + if (AUTH_PROTOS.contains(scheme + "://")) { + String userInfo = repositoryURI.getUserInfo(); + return userInfo != null && userInfo.contains(":"); + } else { + return false; } + } catch (URISyntaxException e) { + return false; } - return false; } public void setHgCommandPath(@NotNull final String hgCommandPath) {