【发布时间】:2017-05-14 13:13:47
【问题描述】:
我想通过用 Java 重写来替换在 Windows 服务器上运行的旧应用程序。此应用程序现在正在通过 Windows Impersonation API 连接到一堆 Windows 服务器(这些服务器无法安装其他服务并且无法更改它们)。
我想出了两个库JNA 和Waffle。据我了解,Waffle 使用 JNA,而 JNA 提供从 java 代码对 Windows API 的调用。
问题是,我将让我的 java 应用程序在显然没有 win32 api 的 redhat 服务器上运行。 Impersonation API 是否有 *nix 绑定?至少我可以考虑在该绑定上编写 JNI。
我认为应该有办法,因为 Mono 和 Wine 在不同的平台上提供了类似的抽象。
【问题讨论】:
-
“我想通过重写来替换运行在 Windows 服务器上的旧版应用程序” - Things You Should Never Do, Part I。
-
我相信在 UNIX 中相当于模拟的是 seteuid 函数。是否可以从 Java 调用它我不知道。但实际上听起来好像您想要打开到 Windows 服务器的命名管道,或者可能是 RPC 或 Schannel?这些并不都是某些“模拟 API”的一部分,它们是各种不同的通信技术,都恰好支持模拟。请说明您尝试使用的具体技术。
标签: java unix winapi impersonation