Reputation: 5858
I have two windows domains A and B.
I have two servers: nasB
on domain B, and webserverA
on domain A.
I have two users: userB
on domain B and access to nasB
and userA
on domain A with access to webserverA
I am running tomcat as a service on webserverA
and it has the logon as property set to userA
.
I have \\nasB\myFiles$\
mapped on webserverA
using userB
credentials. The mapping is only to allow the JVM access. I always access the drive using UNC in the code. I also have credentials in the manage network passwords. Both methods work when running any java app directly but not as a service :(
If I run tomcat as a service it throws a filenotfound except when trying to access \\nasB\myFiles$\somefile.txt
. If I run tomcat using the startup.bat it can access the file fine.
I cannot run tomcat service using userB
as he does not have access to webserverA
. How do I let my tomcat service use the userB
credentials when accessing nasB
?
Upvotes: 2
Views: 5179
Reputation: 461
Create Windows user with username/password identical on both Windows servers. Example userA/passA Then run Tomcat Windows service with that user.
Upvotes: 0
Reputation: 7579
Don't try using mapped drives.
Given the fact users' configuration and mapped drives are available only if the user logins using interactive login, you won't be able to use such resources. Try with UNC paths and, if that doesn't work due to user restrictions, get a hand over jcifs library, it is quite handy in those cases because it allows you to authenticate when accesing the resource with the UNC path, so it reduces uncertainty about ability to read folders and files in network drives (also, configuring tomcat service to be ran as an administrative user, giving credentials that shouldn't expire,...).
I' ve faced this myself and this is just my personal view.
Upvotes: 3