NIFI-7835 Add authenticated SOCKS and HTTP proxy support for SFTP#5624
Closed
exceptionfactory wants to merge 1 commit intoapache:mainfrom
Closed
NIFI-7835 Add authenticated SOCKS and HTTP proxy support for SFTP#5624exceptionfactory wants to merge 1 commit intoapache:mainfrom
exceptionfactory wants to merge 1 commit intoapache:mainfrom
Conversation
1a46b08 to
b1a8c55
Compare
NIFI-7749 Added authenticated HTTP proxy support for SFTP - Added StandardSocketFactoryProvider to return SocketFactory based on credentials
b1a8c55 to
554a2a0
Compare
greyp9
approved these changes
Jan 7, 2022
Contributor
greyp9
left a comment
There was a problem hiding this comment.
Really useful enhancement to the SFTP processors!
Tested ListSFTP and FetchSFTP using squid (installed) for HTTP proxy and dante (Docker image) for SOCKS proxy, using proxy user name / password configuration. Also checked ability of user/pass proxy to interoperate with SSH pubkey authentication; no problems there. Code looks great.
Congrats on your socketbroker distributable!
.../src/main/java/org/apache/nifi/processors/standard/socket/StandardSocketFactoryProvider.java
Show resolved
Hide resolved
gresockj
reviewed
Jan 12, 2022
gresockj
approved these changes
Jan 12, 2022
Contributor
gresockj
left a comment
There was a problem hiding this comment.
Thanks for this contribution, @exceptionfactory! I don't have any problems with the code.
Given @greyp9 's runtime testing, I'll go ahead and merge.
krisztina-zsihovszki
pushed a commit
to krisztina-zsihovszki/nifi
that referenced
this pull request
Jun 28, 2022
NIFI-7749 Added authenticated HTTP proxy support for SFTP - Added StandardSocketFactoryProvider to return SocketFactory based on credentials Signed-off-by: Joe Gresock <jgresock@gmail.com> This closes apache#5624.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of PR
NIFI-7835 Adds support for accessing SFTP servers through SOCKS 5 proxy servers that require authentication. Support for authenticated proxy server access also applies to HTTP proxy servers, resolving NIFI-7749.
NiFi SFTP components use SSHJ since version 1.10.0. SSHJ does not provide direct support for authenticated proxy server access, and the current NiFi implementation supports SOCKS and HTTP proxy access without authentication using a custom
ProxySocketFactory. Thejava.net.Authenticatorclass does not support providing proxy username and password credentials for single instances ofjava.net.Proxy, instead requiring the use anAuthenticatorinstance for the entire JVM using theAuthenticator.setDefault()method. This approach is not suitable for NiFi components that may require different sets of credentials for different component instances.This pull request integrates the BrokeredSocketFactory from the socketbroker library to support authenticated access to SOCKS and HTTP proxy servers from NiFi SFTP components.
Runtime configurations can be tested using proxy servers that implement standard SOCKS 5 and HTTP CONNECT protocols. The following open source proxy servers can be configured with authentication for testing:
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:
Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?
Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
Has your PR been rebased against the latest commit within the target branch (typically
main)?Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not
squashor use--forcewhen pushing to allow for clean monitoring of changes.For code changes:
mvn -Pcontrib-check clean installat the rootnififolder?LICENSEfile, including the mainLICENSEfile undernifi-assembly?NOTICEfile, including the mainNOTICEfile found undernifi-assembly?.displayNamein addition to .name (programmatic access) for each of the new properties?For documentation related changes:
Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.