summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stable-6.0'Matthias Sohn2021-11-240-0/+0
|\ | | | | | | | | | | | | | | * stable-6.0: Prepare 6.0.0-SNAPSHOT builds JGit v6.0.0.202111241155-rc1 Change-Id: Icb4caf0809ac0c629cb4a05be293c61c669411db
| * Prepare 6.0.0-SNAPSHOT buildsMatthias Sohn2021-11-2491-125/+125
| | | | | | | | Change-Id: I4e06186cf62681767962e391331cc65bafddc205
| * JGit v6.0.0.202111241155-rc1v6.0.0.202111241155-rc1Matthias Sohn2021-11-2491-125/+125
| | | | | | | | | | Change-Id: I35dc089a00ee12f83f506fb320d23762fa030063 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * Merge branch 'master' into stable-6.0Matthias Sohn2021-11-2463-404/+796
| |\ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: Add 4.22 target platform for 2021-12 Update Orbit to R20211122181901 for 2021-12 AppServer: fix keystore used to setup test SSL context factory [6.0 API cleanup] Public interface for PackLock [6.0 API cleanup] StoredObjectRepresentationNotAvailableException RepoCommand: Do not wrap GitApiExceptions in GitApiExceptions Set JSch global config values only if not set already Better git system config finding [6.0 API cleanup] CancelledException vs. CanceledException Javadoc fixes Better git system config finding HttpClientConnectionTest: organize imports Update Jetty to 10.0.6 Fix missing @since 6.0 tag Support commit.template config property DFS block cache: harden against race over ref locks. Change-Id: Id9814d92eb40b2ba63c5e753a86a4809826e7c81
* | Add 4.22 target platform for 2021-12Matthias Sohn2021-11-242-0/+107
| | | | | | | | Change-Id: Ie003dee8390cb609bd3352c23e88aeb0bf1bc68b
* | Update Orbit to R20211122181901 for 2021-12Matthias Sohn2021-11-2411-17/+17
| | | | | | | | Change-Id: Ieddfe7938d0743ffbe74fa7bb366030e93fa010c
* | AppServer: fix keystore used to setup test SSL context factoryMatthias Sohn2021-11-241-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | - configure dName - add SANs ip:127.0.0.1, ip:[::1] See jetty's own test setup in https://github.com/eclipse/jetty.project/blob/1cd15e8d85feb308527c3df560734fc2ca1bc13c/jetty-client/src/test/resources/readme_keystores.txt#L6 and the fixes done in https://github.com/eclipse/jetty.project/commit/1cd15e8d85feb308527c3df560734fc2ca1bc13c Change-Id: Ie3260db7a7090dfa92b43eb32bf247640ebf8482
* | Merge "RepoCommand: Do not wrap GitApiExceptions in GitApiExceptions"Ivan Frade2021-11-231-4/+3
|\ \
| * | RepoCommand: Do not wrap GitApiExceptions in GitApiExceptionsIvan Frade2021-11-231-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While building the commit for the destination project, RepoCommand catches GitApiExceptions and wraps them into ManifestErrorException (a subclass of GitApiException). This hides the real exception from the caller and prevent them to do a fine-grained catch. Specifically this is problematic for gerrit's supermanifest plugin, that won't see ConcurrentRefUpdate exceptions to detect lock-failures. Use ManifestErrorException to wrap non-GitApiExceptions, let GitApiExceptions pass through as they are. Change-Id: Ia2cda244e65993bb07c89cd6435507d5d0754dd4
* | | [6.0 API cleanup] Public interface for PackLockThomas Wolf2021-11-2312-20/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a public interface PackLock exposing only the unlock() method. Rename the internal PackLock class to PackLockImpl and have it implement the new interface. This way PackParser doesn't expose an internal class via its API anymore, and client can still unlock pack locks that were created. Bug: 576340 Change-Id: I976739f4ab28fe1f9ba7f35653a69a913aa68841 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | [6.0 API cleanup] StoredObjectRepresentationNotAvailableExceptionThomas Wolf2021-11-233-22/+13
| | | | | | | | | | | | | | | | | | | | | Remove the unused parameter, which had a non-API type anyway. Bug: 576340 Change-Id: Id71c01a643e1f31a8ff61ff69f7915c373db3263 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | Merge branch 'stable-5.13'Matthias Sohn2021-11-230-0/+0
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | * stable-5.13: Set JSch global config values only if not set already Better git system config finding Change-Id: I79848eeb3cda795ecb80ad845aa1027e2e231d18
| * | Merge branch 'stable-5.12' into stable-5.13Thomas Wolf2021-11-231-8/+63
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.12: Better git system config finding Change-Id: Iebbae08b6bb6ef510ca07329df77223bc2128ec1 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| | * \ Merge branch 'stable-5.11' into stable-5.12Thomas Wolf2021-11-231-8/+63
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.11: Better git system config finding Change-Id: I47946b91658cb2e38709179b7a8513b1211431e4 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| | | * \ Merge branch 'stable-5.10' into stable-5.11Thomas Wolf2021-11-231-8/+63
| | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.10: Better git system config finding Change-Id: I460d855ea7878b279dbaffa6eb7ce5ca93f4c12c Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| | | | * \ Merge branch 'stable-5.9' into stable-5.10Thomas Wolf2021-11-231-8/+63
| | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-5.9: Better git system config finding Change-Id: I1022d003e0d3b9d452abfed9ac49663d0a93c6e6 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
| | | | | * | Better git system config findingThomas Wolf2021-11-231-8/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've used "GIT_EDITOR=edit git config --system --edit" to determine the location of the git system config for a long time. But git 2.34.0 always expects this command to have a tty, but there isn't one when called from Java. If there isn't one, the Java process may get a SIGTTOU from the child process and hangs. Arguably it's a bug in C git 2.34.0 to unconditionally assume there was a tty. But JGit needs a fix *now*, otherwise any application using JGit will lock up if git 2.34.0 is installed on the machine. Therefore, use a different approach if the C git found is 2.8.0 or newer: parse the output of git config --system --show-origin --list -z "--show-origin" exists since git 2.8.0; it prefixes the values with the file name of the config file they come from, which is the system config file for this command. (This works even if the first item in the system config is an include.) Bug: 577358 Change-Id: I3ef170ed3f488f63c3501468303119319b03575d Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch> (cherry picked from commit 9446e62733da5005be1d5182f0dce759a3052d4a)
| * | | | | | Set JSch global config values only if not set alreadyThomas Wolf2021-11-231-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 576604 Change-Id: I04415f07bf2023bc8435c097d1d3c65221d563f1 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch> (cherry picked from commit f8b0c00e6a8f5628babff6dd37254a21589b6e44)
* | | | | | | [6.0 API cleanup] CancelledException vs. CanceledExceptionThomas Wolf2021-11-223-34/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the GitAPIException CanceledException instead of IOException CancelledException in the rename detector. Change-Id: I5121719eb714a123ec57769fc113c84857bd3c6c Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | Javadoc fixesThomas Wolf2021-11-2213-22/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Skip javadoc generation for test bundles. Use character entities &lt; and &gt; for < and > outside of code-formatted spans. Change-Id: I66e1a1dc98881c61f93c9e5561c5513896b2ba01 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | Better git system config findingThomas Wolf2021-11-221-8/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've used "GIT_EDITOR=edit git config --system --edit" to determine the location of the git system config for a long time. But git 2.34.0 always expects this command to have a tty, but there isn't one when called from Java. If there isn't one, the Java process may get a SIGTTOU from the child process and hangs. Arguably it's a bug in C git 2.34.0 to unconditionally assume there was a tty. But JGit needs a fix *now*, otherwise any application using JGit will lock up if git 2.34.0 is installed on the machine. Therefore, use a different approach if the C git found is 2.8.0 or newer: parse the output of git config --system --show-origin --list -z "--show-origin" exists since git 2.8.0; it prefixes the values with the file name of the config file they come from, which is the system config file for this command. (This works even if the first item in the system config is an include.) Bug: 577358 Change-Id: I3ef170ed3f488f63c3501468303119319b03575d Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | Merge changes I7e1f8627,Ibd0240cfMatthias Sohn2021-11-2224-238/+259
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * changes: HttpClientConnectionTest: organize imports Update Jetty to 10.0.6
| * | | | | | | HttpClientConnectionTest: organize importsMatthias Sohn2021-11-221-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I7e1f8627a9360c660adc6f00fe48afe005929150
| * | | | | | | Update Jetty to 10.0.6Matthias Sohn2021-11-2223-231/+252
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - this is the same version eclipse platform currently uses - update servlet-api to 4.0 - configure keystore used by AppServer with Subject Alternative Names for host name and ip address to satisfy more strict SNI checking in Jetty 10. See https://github.com/eclipse/jetty.project/issues/5379 - add jetty bundles to JGit-dependency-bundles in the jgit p2 repository Bug: 571932 Bug: 576100 Change-Id: Ibd0240cf7ad4dc201947fd69707f517c3c1fc1c8
* | | | | | | | Fix missing @since 6.0 tagThomas Wolf2021-11-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CommitConfig.getCommitTemplateContent() has changed API. Change-Id: If72ed79c43c167b99f356b69cc095d6bbf4d66e8 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | | Support commit.template config propertyJulian Ruppel2021-11-222-10/+58
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes an issue that commit template file could not be found if it has a relative path instead of absolute path. Relative path is probably common if git config --local is used. Bug: 446355 Change-Id: I8ddf2be672647be825fd9c01af82809d31bb8356
* | | | | | | Merge branch 'stable-6.0'Matthias Sohn2021-11-170-0/+0
|\ \ \ \ \ \ \ | | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-6.0: Prepare 6.0.0-SNAPSHOT builds JGit v6.0.0.202111161950-m3 Change-Id: I55413bc9e93503130b7900840f75bd9243e156c9
| * | | | | | Prepare 6.0.0-SNAPSHOT buildsMatthias Sohn2021-11-1791-125/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ibfc7fb21b039fe2a7669c8dee3c10f5ade33d520
| * | | | | | JGit v6.0.0.202111161950-m3v6.0.0.202111161950-m3Matthias Sohn2021-11-1791-125/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If6c36994be05848c567d3d664eb683d9bed26c48 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
| * | | | | | Merge branch 'master' into stable-6.0Matthias Sohn2021-11-17117-561/+5225
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: Make BinaryBlobException stackless Typo fix in o.e.j.ssh.{jsch,apache}/README.md ssh: Handle "ProxyJump none" from SSH config file ssh: use a single SecureRandom instance for hashing hostnames OpenSshConfigFile: line comments and quoted strings OpenSshConfigFile: update token replacements Add missing .gitignore in o.e.j.ssh.apache.agent Upgrade plexus-compiler version to 2.9.0 [sshd agent] Introduce ConnectorDescriptor Update version of last release defining the API baseline to 5.13.0 Update Orbit to S20211108222137 Update README Update jetty to 9.4.44.v20210927 Simplify SshdFtpChannel [test] test OpenSshConfigFile directly, not via the JSch config sshd: add support for ssh-agent sshd: prepare for using an SSH agent [releng] bazel: Enable errorprone on o.e.j.ssh.apache [releng] Make the bazel build use Java 11 Fix target platforms [doc] Add README and package-info to the SSH bundles Binary and CR-LF detection: lone CRs -> binary Factor out parsing git-style size numbers to StringUtils Make the buffer size for text/binary detection configurable Change-Id: I5c78eeca3abfc3e0a659ed8a258c4e96e9469713
* | \ \ \ \ \ \ Merge "DFS block cache: harden against race over ref locks."Ivan Frade2021-11-172-33/+167
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | |
| * | | | | | | DFS block cache: harden against race over ref locks.Alina Djamankulova2021-11-162-33/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With change https://git.eclipse.org/r/c/jgit/jgit/+/186455 a thread loading a bitmap index could hold two ref locks at the same time (one for bitmap and one for either index or reverse index). So it is possible that two threads loading bitmaps end up in a deadlock for ref locks e.g. threadA has refLock[1] (for bitmap) and wants refLock[2] (for index or revIndex) and threadB has refLock[2] (for bitmap) and wants refLock[1]. This change introduces separate pools of locks per pack extension instead of a shared pool. So threads loading bitmap can hold two locks but with different extensions and no overlap, e.g. threadA holds refLock[BITMAP_INDEX][1] and refLock[INDEX][2] and threadB holds refLock[BITMAP_INDEX][2] and refLock[INDEX][1]. More unit tests were added to cover various paralell loading scenarios. Signed-off-by: Alina Djamankulova <adjama@google.com> Change-Id: I89704b4721c21548929608d3798ef60925280755
* | | | | | | | Make BinaryBlobException stacklessMatthias Sohn2021-11-161-0/+5
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use BinaryBlobException to signal a binary blob was found and never make use of its stack trace. Suppress filling in the stack trace to avoid the performance penalty coming with that. See https://shipilev.net/blog/2014/exceptional-performance/ Change-Id: Iae1f1c19a1fa8aef4f6569822557171130299958
* | | | | | | Typo fix in o.e.j.ssh.{jsch,apache}/README.mdThomas Wolf2021-11-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ia7da92421f8fecb2a175eb23ecfd04a67e0ca8cc Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | ssh: Handle "ProxyJump none" from SSH config fileThomas Wolf2021-11-153-2/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since OpenSSH 7.8, the ProxyJump directive accepts the value "none"[1] to override and clear a setting that might otherwise be contributed by another (wildcard) host entry. [1] https://bugzilla.mindrot.org/show_bug.cgi?id=2869 Change-Id: Ia35e82c6f8c58d5c6b8040cda7a07b220f43fc21 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | ssh: use a single SecureRandom instance for hashing hostnamesThomas Wolf2021-11-151-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to Spotbugs, that's better practice. It's questionable whether it makes a big difference, though, especially since the hash is the cryptographically weak SHA1. Change-Id: Id293de2bad809d9cc19230bd720184786dc6c226 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | OpenSshConfigFile: line comments and quoted stringsThomas Wolf2021-11-153-44/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring our SSH config parser up-to-date with respect to changes in OpenSSH. In particular, they fixed[1] the handling of line comments such that #-characters inside strings are not considered. This means that we have to parse strings with escaped quotes correctly. [1] https://bugzilla.mindrot.org/show_bug.cgi?id=3288 Change-Id: Ifbd9014127e8d51e7c8792e237f3fc2a9a0719d2 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | OpenSshConfigFile: update token replacementsThomas Wolf2021-11-151-7/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It appears that the OpenSSH documentation[1] has changed; it now allows more flags for a number of keys. [1] https://man.openbsd.org/ssh_config.5#TOKENS Change-Id: I55df174f86a3fd4a6ef22687dc433ac9f9ad181d Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | Merge "Upgrade plexus-compiler version to 2.9.0"Matthias Sohn2021-11-151-1/+6
|\ \ \ \ \ \ \
| * | | | | | | Upgrade plexus-compiler version to 2.9.0Marco Miller2021-11-121-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I24ac698d3ccc01e79464b061068944ca82e8383b Signed-off-by: Marco Miller <marco.miller@ericsson.com>
* | | | | | | | Add missing .gitignore in o.e.j.ssh.apache.agentThomas Wolf2021-11-151-0/+2
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ignore /bin and /target. Change-Id: I38f3748273b5243c54e010bfceac745084755f45 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | [sshd agent] Introduce ConnectorDescriptorThomas Wolf2021-11-109-14/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once a factory supports different SSH agents on the same platform, which is planned for Windows once we use Apache MINA sshd 2.8.0, client code may need to have a way to specify which SSH agent shall be used when the SSH config doesn't define anything. Add a mechanism by which a ConnectorFactory can tell what Connectors it may provide. Client code can use this to set the identityAgent parameter of ConnectorFactory.create() to the wanted default if it would be null otherwise. A ConnectorDescriptor is a pair of strings: an internal name, and a display name. The latter is included because client code might want to communicate agent names to the user, be it in error messages or in some chooser dialog where a user could define which of several alternative SSH agents should be used as default. The internal name is intended to be used in the IdentityAgent directive in ~/.ssh/config. Also make the ConnectorFactory discovered via the ServiceLoader accessible and overrideable. Provide static get/setDefault() methods, similar to the SshSessionFactory itself. Change-Id: Ie3d077395d32dfddc72bc8627e92b23636938182 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | Update version of last release defining the API baseline to 5.13.0Matthias Sohn2021-11-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I48e0d677a466a364fdd699cdb00014a9a65d082a
* | | | | | | Update Orbit to S20211108222137Matthias Sohn2021-11-1014-98/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and update dependencies: - com.google.gson to 2.8.8.v20211029-0838 - com.googlecode.javaewah to 1.1.13.v20211029-0839 - net.i2p.crypto.eddsa to 0.3.0.v20210923-1401 - org.apache.ant to 1.10.12.v20211102-1452 - org.apache.commons.compress to 1.21.0.v20211103-2100 - org.bouncycastle.bcprov to 1.69.0.v20210923-1401 - org.junit to 4.13.2.v20211018-1956 Change-Id: I90ca64f6d9f2a15c9a5d9a27d48956182f1698b4
* | | | | | | Update READMEThomas Wolf2021-11-071-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Java 11 now * Mention new bundle org.eclipse.jgit.ssh.apache.agent * Be honest about missing features: there are quite a few Change-Id: Ie08a2b4581024febe1983a59414cf69845ebff96 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | Update jetty to 9.4.44.v20210927Matthias Sohn2021-11-058-135/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iaa1478af0fe0ccfa1daf1cf44e4eef609e7ad8bb
* | | | | | | Simplify SshdFtpChannelThomas Wolf2021-11-042-56/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apache MINA sshd has simpler API for reading directories, and it has a functional interface suitable for us. So no need to use our own interface, or to deal with low-level abstractions like CloseableHandle. Change-Id: Ic125c587535670504983f157a696b41ed6a76bb7 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | [test] test OpenSshConfigFile directly, not via the JSch configThomas Wolf2021-11-045-6/+683
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a prerequisite for removing the JSch support bundle; otherwise OpenSshConfigFile would be left without tests. Copy OpenSshConfigTest from the JSch support bundle and adapt all tests to perform the equivalent checks on OpenSshConfigFile directly. Add a new lookupDefault() method to the SshConfigStore interface and implement it so that it behaves the same and the tests work identically. Change-Id: I046abd9197a8484003e77005024e5d973456f1a3
* | | | | | | sshd: add support for ssh-agentThomas Wolf2021-11-0357-24/+2362
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a simple SSH agent connector using JNA. Include com.sum.jna and com.sun.jna.platform in the target platform. JNA is used to communicate through Unix domain sockets with ssh-agent, and if on Windows, to communicate via shared memory with Pageant. The new bundle o.e.j.ssh.apache.agent is an OSGi fragment so that the java.util.ServiceLoader can find the provided factory without further ado in OSGi environments. Adapt both maven and bazel builds to include the new bundle. Manually tested on OS X, CentOS 7, and Win10 with Pageant 0.76. Tested by installing JGit built from this change into freshly downloaded Eclipse 2021-12 M1, and then doing git fetches via SSH with different ~/.ssh/config settings (explicit IdentityFile, without any but a key in the agent, with no keys and a key in the agent and IdentitiesOnly=yes (must fail)). Bug: 541274 Bug: 541275 Change-Id: I34e85467293707dbad1eb44d1f40fc2e70ba3622 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
* | | | | | | sshd: prepare for using an SSH agentThomas Wolf2021-11-0312-4/+719
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add interfaces Connector and ConnectorFactory. A "connector" is just something that knows how to connect to an ssh-agent and then can make simple synchronous RPC-style requests (request-reply). Add a way to customize an SshdSessionFactory with a ConnectorFactory. Provide a default setup using the Java ServiceLoader mechanism to discover an ConnectorFactory. Implement an SshAgentClient in the internal part. Unfortunately we cannot re-use the implementation in Apache MINA sshd: it's hard-wired to Apache Tomcat APR, and it's also buggy. No behavior changes yet since there is nothing that would provide an actual ConnectorFactory. So for Apache MINA sshd, the SshAgentFactory remains null as before. Change-Id: I963a3d181357df2bdb66298bc702f2b9a6607a30 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>