2

我有两个 Windows 域 A 和 B。

我有两台服务器:nasB在域 B 上和webserverA在域 A 上。

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

我正在运行 tomcat 作为服务webserverA,它的登录为属性设置为userA.

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

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

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

4

2 回答 2

3

不要尝试使用映射驱动器。

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

我自己也遇到过,这只是我个人的看法。

于 2012-10-01T19:55:02.627 回答
0

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

于 2012-12-25T15:55:55.087 回答