jcifs.smb.SmbAuthException: ошибка входа: пользователь не может войти на этот компьютер - PullRequest
0 голосов
/ 29 сентября 2019

Попытка чтения файла через Windows в Java с использованием библиотеки jCIFS в java.

Этот раздел кода работал отлично, когда у пользователя были включены права «Локальный вход в систему» ​​в Windows. Однако, когда мы внедрили свойство срока действия пароля, наша серверная команда отключила права «Локальный вход в систему» ​​для пользователя.

Теперь, когда мы просматривали путь - вручную, мы можем получить к нему доступ без каких-либо проблем. ,Когда приложение пытается получить доступ к указанному ниже пути на сервере приложений:

FATAL - jcifs.smb.SmbAuthException: Ошибка входа: пользователю не разрешено войти на этот компьютер.

FATAL - Сообщение об ошибке: Ошибка входа: пользователю не разрешено войти в систему на этом компьютере.

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "domain\\"+this.userName, this.password);
String fileName = "";
String filePath = "";
while (result1.next()) {
    for(int i=1; i<=columnsNumber1; i++) {
        String name = rsmd1.getColumnName(i);
        if(name.equals("FILE_PATH")) {
        filePath = result1.getString(i);
        } else if (name.equals("PDF_FILE_NAME")) {
        fileName = result1.getString(i);
        }
    }
}
String newFilePath = filePath.replace('\\', '/');
String path = "smb:"+newFilePath+"/Stored/"+fileName;
SmbFile sFile = new SmbFile(path, auth);
try (SmbFileInputStream in = new SmbFileInputStream(sFile)) {
    int bytesRead = 0;
    do {
        bytesRead = in.read(buffer);
    } 
    while (bytesRead > 0);
}
byte[] encoded = Base64.getEncoder().encode(buffer);

Нужно ли нам устанавливать конкретное свойство для аутентификации NtlmPasswordAuthentication в этом случае? Пожалуйста, помогите, застрял здесь

...