Tomcat Windows服务无法访问网络驱动器

时间:2012-10-01 19:48:46

标签: java tomcat windows-services network-security

我有两个Windows域A和B.

我有两台服务器:域B上为nasB,域A上为webserverA

我有两个用户:域B上的userB和域A上的nasBuserA,可访问webserverA

我在webserverA上运行tomcat作为服务,并将登录属性设置为userA

我使用\\nasB\myFiles$\凭据在webserverA上映射userB。映射仅允许JVM访问。我总是在代码中使用UNC访问驱动器。我还拥有管理网络密码的凭据。这两种方法在直接运行任何Java应用程序时都有效,但不能用作服务:(

如果我将tomcat作为服务运行,它会抛出一个filenotfound,除非在尝试访问\\nasB\myFiles$\somefile.txt时。如果我使用startup.bat运行tomcat,它可以正常访问该文件。

我无法使用userB运行tomcat服务,因为他无法访问webserverA。访问userB时,如何让我的tomcat服务使用nasB凭据?

2 个答案:

答案 0 :(得分:3)

请勿尝试使用映射驱动器。

鉴于用户的配置和映射驱动器仅在用户使用交互式登录进行登录时才可用,您将无法使用此类资源。尝试使用UNC路径,如果由于用户限制而无法工作,请移交jcifs库,在这些情况下它非常方便,因为它允许您在使用UNC路径访问资源时进行身份验证,因此可以减少不确定性关于读取网络驱动器中的文件夹和文件的能力(同样,将tomcat服务配置为以管理用户身份运行,提供不应过期的凭据,...)。

我自己也面对过这个问题,这只是我个人的观点。

答案 1 :(得分:0)

在两台Windows服务器上创建相同用户名/密码的Windows用户。 示例userA / passA 然后使用该用户运行Tomcat Windows服务。