无法使用jcifs-ng 2.x访问DFS共享(使用SMB2)

时间:2019-10-10 13:07:49

标签: smb dfs jcifs

我已经设置了DFS共享(2个Windows 2012服务器,具有共享的共享,是基于域的DFS引用),并且无法使用jcifs-ng库v2.x连接到Java应用程序上的这些服务器。

我可以通过资源管理器轻松访问此共享,例如\\ myDomain \ myNamespace \ myShare。我有一个Java应用程序,它也可以使用jcifs库访问此DFS共享,而没有任何问题。问题是,jcifs仅支持SMB1,已弃用且不安全。因此,我要升级到SMB2,这意味着我必须将库升级到例如jcifs-ng。

使用jcifs-ng v1.5.3可以正常工作(仅支持SMB1),我可以访问DFS共享,但是使用jcifs-ng v2.x不能在SMB1或SMB2中使用。我不断收到“ SmbException:找不到网络名称”异常。

...Caused by: org.apache.commons.vfs.FileSystemException: Could not determine the type of file "smb://myDomain/myNamespace/myShare".
 at org.apache.commons.vfs.provider.AbstractFileObject.attach(AbstractFileObject.java:1485)
 at org.apache.commons.vfs.provider.AbstractFileObject.getType(AbstractFileObject.java:460)
 ... 38 more
Caused by: jcifs.smb.SmbException: The network name cannot be found.
 at jcifs.smb.SmbTransportImpl.checkStatus2(SmbTransportImpl.java:1457)
 at jcifs.smb.SmbTransportImpl.checkStatus(SmbTransportImpl.java:1568)
 at jcifs.smb.SmbTransportImpl.sendrecv(SmbTransportImpl.java:1023)
 at jcifs.smb.SmbTransportImpl.send(SmbTransportImpl.java:1539)
 at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:409)
 at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:347)
 at jcifs.smb.SmbTreeImpl.treeConnect(SmbTreeImpl.java:611)
 at jcifs.smb.SmbTreeConnection.connectTree(SmbTreeConnection.java:614)
 at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:568)
 at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:489)
 at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:465)
 at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:426)
 at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:551)
 at jcifs.smb.SmbFile.exists(SmbFile.java:845)
 at jcifs.smb.SmbFile.isDirectory(SmbFile.java:1063)
 ... 40 more

我已经尝试过属性“ jcifs.smb.client.dfs.disabled = false”,“ jcifs.netbios.wins = xxxx”,“ jcifs.resolveOrder”,我将NtlmPasswordAuthentication与更新的NtlmPasswordAuthenticator进行了交换,使用了新的CIFSContext,但无济于事。

编辑:我注意到,如果我设置DFS命名空间而不向其添加共享文件夹,则可以访问它。将共享文件夹添加到此命名空间后,尝试列出DFS命名空间的所有子级时将出现错误。 DFS引用不适用于命名空间中的共享...

任何想法可能是什么问题?

0 个答案:

没有答案