Java – 使用用户身份validation访问文件

我有一个服务器,我使用java应用程序处理数据库和文件。 当我启动我的应用程序时,我使用以下命令报告有关服务器的文件访问权限:

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

每次我启动我的应用程序(重新启动计算机后),即使服务器已开启,我也会得到错误的响应。 原因是因为我必须以另一个用户身份进行身份validation。 我所做的是通过Windows访问服务器,在那里我被要求输入用户名/密码,然后我得到关于文件访问服务器的真实响应。

有没有办法通过Java提供身份validation用户名/密码 ,而不是通过Windows?

谢谢

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

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

有关示例,请参阅API 。

我很确定,没有Windows-Call就无法通过java授予fileaccess。

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

我遇到了类似的问题: 如果我只知道SID,如何在Windows中更改文件ACL?

使用Java7可能有一种方法可以做到这一点。