Привет, вот мой код, который я пытаюсь проверить в конфигурации DFS
SmbConfig config = SmbConfig.builder()
.withMultiProtocolNegotiate(true)
.withSigningRequired(true)
.withDfsEnabled(true)
.build();
this.client = new SMBClient(config);
this.connection = client.connect(serverName);
this.ac = new AuthenticationContext(username, password.toCharArray(), domain);
this.session = connection.authenticate(ac);
this.share = (DiskShare) session.connectShare(sharename);
for( FileIdBothDirectoryInformation item : this.share.list("myprojectname\\testfoldername") ){
System.out.println(item.getFileName()+" ");
}
File f = this.share.openFile("myprojectname\\testfoldername\\try-a-new-file.txt",
new HashSet<>(Arrays.asList(AccessMask.FILE_ADD_FILE)),
new HashSet<>(Arrays.asList(FileAttributes.FILE_ATTRIBUTE_NORMAL)),
SMB2ShareAccess.ALL,
SMB2CreateDisposition.FILE_OPEN_IF,
new HashSet<>(Arrays.asList(SMB2CreateOptions.FILE_DIRECTORY_FILE))
);
Я получаю ошибку в строке share.openFile
как
com.hierynomus.mssmb2.SMBApiException: STATUS_ACCESS_DENIED
(0xc0000022): не удалось создать для .....
Почему это может происходить, блокировка разрешений для создания файла? Интересно то, что я могу подключиться к той же папке через Finder на моем Mac и создавать там файлы, также пробовал с помощью jcifs, и это сработало.