smbj - STATUS_ACCESS_DENIED для DFS - PullRequest
       16

smbj - STATUS_ACCESS_DENIED для DFS

0 голосов
/ 30 августа 2018

Привет, вот мой код, который я пытаюсь проверить в конфигурации 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, и это сработало.

...