Java - Access file with user authentication

五迷三道 提交于 2019-12-17 17:03:52

问题


I have a server where I work with a database and files using a java app. When I start my app I give a report regarding file access to the server using:

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

Every time I start my app (after a fresh restart of my computer) I get a false response, even though the server is on. The reason is because I must give an authentication as another user. What I do is access the server through Windows where I am being asked for username/password, and after that I get a true response regarding file access to the server.

Is there a way to give the authentication username/password through Java, and not through Windows?

Thank you


回答1:


On Windows 'native' Java IO (e.g. java.io.File) always inherits the security context of the user running the JVM process. For example, you could run the Java app as a Windows service with the correct credentials.

The JCIFS project implements CIFS (the Windows SMB file server protocol) and allows you to directly specify the username/password.

See the API for examples.




回答2:


I am pretty sure, that there is no way to grant fileaccess by java, without a Windows-Call.

You can call cacls file.log /e /t /p Everyone:f but this will be language-dependent.

I had a similar problem: How to change the file ACL in windows, if I only know the SID?

With Java7 there may be a way to do this.



来源:https://stackoverflow.com/questions/4734845/java-access-file-with-user-authentication

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!