具有用户身份验证的Java-Access文件

具有用户身份验证的Java-Access文件,java,authentication,file-access,Java,Authentication,File Access,我有一个服务器,在那里我使用java应用程序处理数据库和文件。 当我启动我的应用程序时,我会通过以下方式提供有关服务器文件访问权限的报告: public static boolean folderExists(String folderPath) { File folderToCheck = new File(folderPath); return folderToCheck.exists(); } 每次启动我的应用程序(重新启动计算机后) 我得到一个错误的响应,即使服务器已打

我有一个服务器,在那里我使用java应用程序处理数据库和文件。 当我启动我的应用程序时,我会通过以下方式提供有关服务器文件访问权限的报告:

public static boolean folderExists(String folderPath) {
    File folderToCheck = new File(folderPath);
    return folderToCheck.exists();
}
每次启动我的应用程序(重新启动计算机后) 我得到一个错误的响应,即使服务器已打开。 原因是我必须作为另一个用户进行身份验证。 我要做的是通过Windows访问服务器 当我被要求输入用户名/密码时, 之后,我得到了关于服务器文件访问的真实响应

有没有办法通过Java提供身份验证用户名/密码, 而不是通过窗户


谢谢

我很确定,如果没有Windows调用,就无法通过java授予文件访问权限

您可以调用
cacls file.log/e/t/p Everyone:f
,但这取决于语言

我也有类似的问题:


对于Java7,可能有一种方法可以做到这一点。

在Windows“本机”上,Java IO(例如Java.IO.File)始终继承运行JVM进程的用户的安全上下文。例如,您可以使用正确的凭据将Java应用程序作为Windows服务运行

JCIFS项目实现(Windows SMB文件服务器协议),并允许您直接指定用户名/密码


有关示例,请参见。

我可以通过调用shell命令来完成吗?我没问题。我正在使用Windows。该命令是如何执行的?我通过调用cacls
cacls file.log/e/t/p Everyone:f
:来更改文件的权限:但请注意,登录名为“Everyone”的用户在本地化窗口上可能有不同的名称。对于德语翻译的windows,调用必须是
cacls file.log/e/t/p Jeder:f