jgit/org.eclipse.jgit.test
Thomas Wolf fdcd4f9a34 Support http.<url>.* configs
Git has a rather elaborate mechanism to specify HTTP configuration
options per URL, based on pattern matching the URL against "http"
subsection names.[1] The URLs used for this matching are always the
original URLs; redirected URLs do not participate.

* Scheme and host must match exactly case-insensitively.
* An optional user name must match exactly.
* Ports must match exactly after default ports have been filled in.
* The path of a subsection, if any, must match a segment prefix of
  the path of the URL.
* Matches with user name take precedence over equal-length path
  matches without, but longer path matches are preferred over
  shorter matches with user name.

Implement this for JGit. Factor out the HttpConfig from TransportHttp
and implement the matching and override mechanism.

The set of supported settings is still the same; JGit currently
supports only followRedirects, postBuffer, and sslVerify, plus the
JGit-specific maxRedirects key.

Add tests for path normalization and prefix matching only on segment
separators, and use the new mechanism in SmartClientSmartServerSslTest
to disable sslVerify selectively for only the test server URLs.

Compare also bug 374703 and bug 465492. With this commit it would be
possible to set sslVerify to false for only the git server using a
self-signed certificate instead of having to switch it off globally
via http.sslVerify.

[1] https://git-scm.com/docs/git-config

Change-Id: I42a3c2399cb937cd7884116a2a32fcaa7a418fcb
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2017-09-10 17:37:54 -04:00
..
.settings Partially revert c0ad77d8 "Enhance Eclipse save actions" 2017-08-30 03:07:18 +02:00
META-INF Let Jsch know about ~/.ssh/config 2017-08-26 01:41:50 +02:00
exttst/org/eclipse/jgit Enable and fix warnings about redundant specification of type arguments 2017-02-20 22:47:23 +01:00
src/org/eclipse/jgit Send a detailed event on working tree modifications 2017-08-15 16:52:00 -04:00
tst/org/eclipse/jgit Support http.<url>.* configs 2017-09-10 17:37:54 -04:00
tst-rsrc Support -merge attribute in binary macro 2017-06-27 10:33:50 +02:00
.classpath Change JGit minimum execution environment to JavaSE-1.8 2016-09-20 11:32:36 +02:00
.gitignore Extend the FS class for Java7 2013-05-04 02:01:56 +02:00
.project Remove references to org.eclipse.jgit.java7 2016-08-05 11:22:27 +09:00
BUILD Format BUILD files with buildifier 2017-08-18 10:01:06 +01:00
build.properties Add missing dependency to slf4j-log4j bridge 2016-09-05 04:53:14 -04:00
org.eclipse.jgit.core--All-Tests (Java 8) (de).launch Fixed few locale dependent pgm tests 2016-01-02 17:41:58 +01:00
org.eclipse.jgit.core--All-Tests (Java 8).launch Fix classpath of test launch configurations 2015-11-21 00:33:43 +01:00
org.eclipse.jgit.core--All-Tests.launch Use JUnit4 for tests 2010-08-26 12:26:38 -05:00
org.eclipse.jgit.test-WalkEncryptionTest-Proxy.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
org.eclipse.jgit.test-WalkEncryptionTest.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
plugin.properties Fix plugin provider names to conform with release train requirement 2013-04-08 23:05:36 +02:00
pom.xml Send a detailed event on working tree modifications 2017-08-15 16:52:00 -04:00
tests.bzl Add dependency to jsch for OpenSshConfigTest to bazel build 2017-08-31 14:14:05 +02:00