Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java - Access file with user authentication

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

like image 273
Stefanos Kargas Avatar asked Oct 13 '22 17:10

Stefanos Kargas


2 Answers

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.

like image 70
Uriah Carpenter Avatar answered Oct 18 '22 03:10

Uriah Carpenter


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.

like image 22
Christian Kuetbach Avatar answered Oct 18 '22 02:10

Christian Kuetbach