Java - доступ к файлу с аутентификацией пользователя - PullRequest
4 голосов
/ 19 января 2011

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

public static boolean folderExists(String folderPath) {
    File folderToCheck = new File(folderPath);
    return folderToCheck.exists();
}

Каждый раз, когда я запускаю свое приложение (после перезагрузки компьютера), я получаю ложный ответ, даже еслисервер включен.Причина в том, что я должен дать аутентификацию как другой пользователь.Что я делаю, так это обращаюсь к серверу через Windows, где меня просят ввести имя пользователя / пароль, и после этого я получаю верный ответ относительно доступа к файлу на сервере.

Есть ли способ датьаутентификация имени пользователя / пароля через Java , а не через Windows?

Спасибо

Ответы [ 2 ]

2 голосов
/ 19 января 2011

В Windows «родной» Java IO (например, java.io.File) всегда наследует контекст безопасности пользователя, выполняющего процесс JVM. Например, вы можете запустить приложение Java как службу Windows с правильными учетными данными.

Проект JCIFS реализует CIFS (протокол файлового сервера Windows SMB) и позволяет напрямую указывать имя пользователя / пароль.

См. API для примеров.

1 голос
/ 19 января 2011

Я почти уверен, что нет способа предоставить доступ к файлу с помощью Java без вызова Windows.

Вы можете позвонить на cacls file.log /e /t /p Everyone:f, но это будет зависеть от языка.* У меня была похожая проблема: Как изменить файл ACL в Windows, если я знаю только SID?

С Java7 может быть способ сделать это.

...