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可能有一种方法可以做到这一点。