/** * Creates a <span class="javastring">"file:///"</span> <b>SVNURL</b> * representation given a filesystem style repository path. * * @param repositoryPath a repository path as a filesystem path * @return an <b>SVNURL</b> representation * @throws SVNException */ public static SVNURL fromFile(File repositoryPath) throws SVNException { if (repositoryPath == null) { return null; } String path = repositoryPath.getAbsoluteFile().getAbsolutePath(); String host = null; if (SVNFileUtil.isWindows && path.startsWith("//") || path.startsWith("\\\\")) { // this is UNC path, remove host. path = path.replace(File.separatorChar, '/'); path = path.substring("//".length()); final int lastIndex = path.indexOf("/") > 0 ? path.indexOf("/") : path.length(); host = path.substring(0, lastIndex); path = path.substring(host.length()); } else { path = path.replace(File.separatorChar, '/'); } if (!path.startsWith("/")) { path = "/" + path; } return SVNURL.create("file", null, host, -1, path, false); }
@Override @NotNull public SVNURL getUrl() throws SVNException { return SVNURL.create("svn", null, BIND_HOST, server.getPort(), prefix, true); }
@Nullable @Override public RepositoryInfo getRepository(@NotNull SVNURL url) throws SVNException { final Map.Entry<String, GitLabProject> entry = RepositoryListMapping.getMapped(mapping, url.getPath()); if (entry != null && entry.getValue().isReady()) { return new RepositoryInfo( SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort() == SVNURL.getDefaultPortNumber(url.getProtocol()) ? -1 : url.getPort(), entry.getKey(), true), entry.getValue().getRepository() ); } return null; }
@Nullable @Override public RepositoryInfo getRepository(@NotNull SVNURL url) throws SVNException { final Map.Entry<String, VcsRepository> entry = getMapped(mapping, url.getPath()); if (entry != null) { return new RepositoryInfo( SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort() == SVNURL.getDefaultPortNumber(url.getProtocol()) ? -1 : url.getPort(), entry.getKey(), true), entry.getValue() ); } return null; }
@Nullable @Override public RepositoryInfo getRepository(@NotNull SVNURL url) throws SVNException { final Map.Entry<String, GiteaProject> entry = RepositoryListMapping.getMapped(mapping, url.getPath()); if (entry != null && entry.getValue().isReady()) { return new RepositoryInfo( SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort() == SVNURL.getDefaultPortNumber(url.getProtocol()) ? -1 : url.getPort(), entry.getKey(), true), entry.getValue().getRepository() ); } return null; }
@Override public URI getUri() { SVNURL svnurl; svnurl = getSvnurl(); try { svnurl = SVNURL.create(svnurl.getProtocol(), null, svnurl.getHost(), svnurl.hasPort() ? svnurl.getPort() : -1, svnurl.getPath(), false); } catch (SVNException e) { throw new IllegalStateException(e.getMessage(), e); } return URI.create(root.getFilesystem().getScheme() + ":" + svnurl.toString()); }
public NativeDaemon(@NotNull String svnserve, @NotNull String svnadmin) throws IOException, InterruptedException, SVNException { int port = detectPort(); url = SVNURL.create("svn", null, HOST, port, null, true); repo = TestHelper.createTempDir("git-as-svn-repo"); log.info("Starting native svn daemon at: {}, url: {}", repo, url);
public static SVNURL canonicalizeURL(SVNURL url, boolean omitDefaultPort) throws SVNException { if (url == null || url.getPort() <= 0) { return null; } int defaultPort = SVNURL.getDefaultPortNumber(url.getProtocol()); if (defaultPort <= 0) { return null; } if (omitDefaultPort) { if (url.hasPort() && url.getPort() == defaultPort) { return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), -1, url.getPath(), false); } } else if (!url.hasPort()) { return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), false); } return null; }
private static SVNURL canonicalizeURL(SVNURL url, boolean omitDefaultPort) throws SVNException { if (url == null || url.getPort() <= 0) { // no url or file url. return null; } int defaultPort = SVNURL.getDefaultPortNumber(url.getProtocol()); if (defaultPort <= 0) { // file or svn+ext URL. return null; } if (omitDefaultPort) { // remove port if it is same as default. if (url.hasPort() && url.getPort() == defaultPort) { return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), -1, url.getPath(), false); } } else if (!url.hasPort()) { // set port if there is no port set. return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), false); } return null; }
private static SVNURL canonicalizeURL(SVNURL url, boolean omitDefaultPort) throws SVNException { if (url == null || url.getPort() <= 0) { // no url or file url. return null; } int defaultPort = SVNURL.getDefaultPortNumber(url.getProtocol()); if (defaultPort <= 0) { // file or svn+ext URL. return null; } if (omitDefaultPort) { // remove port if it is same as default. if (url.hasPort() && url.getPort() == defaultPort) { return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), -1, url.getPath(), false); } } else if (!url.hasPort()) { // set port if there is no port set. return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), false); } return null; }
private static SVNURL canonicalizeURL(SVNURL url, boolean omitDefaultPort) throws SVNException { if (url == null || url.getPort() <= 0) { // no url or file url. return null; } int defaultPort = SVNURL.getDefaultPortNumber(url.getProtocol()); if (defaultPort <= 0) { // file or svn+ext URL. return null; } if (omitDefaultPort) { // remove port if it is same as default. if (url.hasPort() && url.getPort() == defaultPort) { return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), -1, url.getPath(), false); } } else if (!url.hasPort()) { // set port if there is no port set. return SVNURL.create(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), false); } return null; }
public void verifyHostKey(String hostName, int port, String keyAlgorithm, byte[] hostKey) throws SVNException { String realm = hostName + ":" + port + " <" + keyAlgorithm + ">"; byte[] existingFingerprints = (byte[]) getRuntimeAuthStorage().getData("svn.ssh.server", realm); if (existingFingerprints == null && myProviders[2] instanceof ISVNPersistentAuthenticationProvider) { existingFingerprints = ((ISVNPersistentAuthenticationProvider) myProviders[2]).loadFingerprints(realm); } if (existingFingerprints == null || !equals(existingFingerprints, hostKey)) { SVNURL url = SVNURL.create("svn+ssh", null, hostName, port, "", true); final ISVNHostOptions hostOptions = getHostOptionsProvider().getHostOptions(url); boolean storageEnabled = hostOptions.isAuthStorageEnabled(); if (getAuthenticationProvider() != null) { int accepted = getAuthenticationProvider().acceptServerAuthentication(url, realm, hostKey, storageEnabled); if (accepted == ISVNAuthenticationProvider.ACCEPTED && storageEnabled) { if (storageEnabled && hostKey != null && myProviders[2] instanceof ISVNPersistentAuthenticationProvider) { ((ISVNPersistentAuthenticationProvider) myProviders[2]).saveFingerprints(realm, hostKey); } } else if (accepted == ISVNAuthenticationProvider.REJECTED) { throw new SVNAuthenticationException(SVNErrorMessage.create(SVNErrorCode.AUTHN_CREDS_NOT_SAVED, "Host key ('" + realm + "') can not be verified.")); } if (hostKey != null) { getRuntimeAuthStorage().putData("svn.ssh.server", realm, hostKey); } } } }
public void verifyHostKey(String hostName, int port, String keyAlgorithm, byte[] hostKey) throws SVNException { String realm = hostName + ":" + port + " <" + keyAlgorithm + ">"; byte[] existingFingerprints = (byte[]) getRuntimeAuthStorage().getData("svn.ssh.server", realm); if (existingFingerprints == null && myProviders[2] instanceof IPersistentAuthenticationProvider) { existingFingerprints = ((IPersistentAuthenticationProvider) myProviders[2]).loadFingerprints(realm); } if (existingFingerprints == null || !equals(existingFingerprints, hostKey)) { SVNURL url = SVNURL.create("svn+ssh", null, hostName, port, "", true); boolean storageEnabled = isAuthStorageEnabled(url); if (getAuthenticationProvider() != null) { int accepted = getAuthenticationProvider().acceptServerAuthentication(url, realm, hostKey, isAuthStorageEnabled(url)); if (accepted == ISVNAuthenticationProvider.ACCEPTED && isAuthStorageEnabled(url)) { if (storageEnabled && hostKey != null && myProviders[2] instanceof IPersistentAuthenticationProvider) { ((IPersistentAuthenticationProvider) myProviders[2]).saveFingerprints(realm, hostKey); } } else if (accepted == ISVNAuthenticationProvider.REJECTED) { throw new SVNAuthenticationException(SVNErrorMessage.create(SVNErrorCode.AUTHN_CREDS_NOT_SAVED, "Host key ('" + realm + "') can not be verified.")); } if (hostKey != null) { getRuntimeAuthStorage().putData("svn.ssh.server", realm, hostKey); } } } }
} else { final SVNURL currentLocation = getLocation(); correctedUrl[0] = SVNURL.create(currentLocation.getProtocol(), currentLocation.getUserInfo(), currentLocation.getHost(), currentLocation.getPort(), newLocation, /*URI encoded*/false);