[ https://issues.apache.org/jira/browse/NIFI-12837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17826782#comment-17826782 ]
Peter Turcsanyi commented on NIFI-12837: ---------------------------------------- [~andersns] Thanks for filing this feature request! I did some investigation around DFS support in smbj and how it could be used in NiFi a few months ago. You are right that turning it on is quite straightforward. However, I ran into two bugs in the library (there may be [others|https://github.com/hierynomus/smbj/issues?q=is%3Aissue+is%3Aopen+DFS] too): * [https://github.com/hierynomus/smbj/issues/796] - Stale connections in SMBClient.connectionTable * [https://github.com/hierynomus/smbj/issues/717] - Null Pointer when opening DFS link They should be fixed on the smbj side. Suggestions were provided how to handle them, but still no answers. Fortunately, there is a workaround to the first one that can be implemented in NiFi. The second one is a bit specific: - affects the List processor only - occurs only when the DFS root or a parent directory (not a link) is listed; when Directory property is set to a link directly, it works - managed to replicate on Samba DFS share and standalone Windows instances; it seems to work in Windows AD Domain where the DFS namespace is hosted by Domain Controller(s) Having said that, I don't feel smbj's DFS support pretty robust but we can go ahead and add it in the SMB processors as an "experimental" feature. > Add DFS setting to smb processors > --------------------------------- > > Key: NIFI-12837 > URL: https://issues.apache.org/jira/browse/NIFI-12837 > Project: Apache NiFi > Issue Type: Improvement > Affects Versions: 1.25.0 > Reporter: Anders > Priority: Major > > The hierynomus/smbj library has a setting for enabling DFS which is disabled > by default: > https://github.com/hierynomus/smbj/blob/f25d5c5478a5b73e9ba4202dcfb365974e15367e/src/main/java/com/hierynomus/smbj/SmbConfig.java#L106C17-L106C39 > This appears to cause problems in some SMB configurations. > Patched > https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java > to test in my environment with: > {code} > $ git diff > nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java > diff --git > a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java > > b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java > index 0895abfae0..aaaaeac765 100644 > --- > a/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java > +++ > b/nifi-nar-bundles/nifi-smb-bundle/nifi-smb-smbj-common/src/main/java/org/apache/nifi/smb/common/SmbUtils.java > @@ -46,6 +46,8 @@ public final class SmbUtils { > } > } > + configBuilder.withDfsEnabled(true); > + > if (context.getProperty(USE_ENCRYPTION).isSet()) { > > configBuilder.withEncryptData(context.getProperty(USE_ENCRYPTION).asBoolean()); > } > {code} > This appeared to resolve the issue. > It would be very useful if this setting was available to toggle in the UI for > all SMB processors. > Without this setting, I get a *STATUS_PATH_NOT_COVERED* error. > Somewhat related hierynomus/smbj github issues: > https://github.com/hierynomus/smbj/issues/152 > https://github.com/hierynomus/smbj/issues/419 > This setting should be made available in the following processors and > services: > * GetSmbFile > * PutSmbFile > * SmbjClientProviderService > Edit: It might require some more changes to handle the connections and > sessions correctly. -- This message was sent by Atlassian Jira (v8.20.10#820010)