Java - 使用用户身份验证访问文件

时间:2011-01-19 11:46:41

标签: java authentication file-access

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

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

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

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

谢谢

2 个答案:

答案 0 :(得分:2)

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

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

有关示例,请参阅API

答案 1 :(得分:1)

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

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

我遇到了类似的问题:How to change the file ACL in windows, if I only know the SID?

使用Java7可能有办法做到这一点。