【问题标题】:Windows Impersonation Java from *nix*nix 的 Windows 模拟 Java
【发布时间】:2017-05-14 13:13:47
【问题描述】:

我想通过用 Java 重写来替换在 Windows 服务器上运行的旧应用程序。此应用程序现在正在通过 Windows Impersonation API 连接到一堆 Windows 服务器(这些服务器无法安装其他服务并且无法更改它们)。

我想出了两个库JNAWaffle。据我了解,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


【解决方案1】:

您是否检查过 Mono 或 Wine 是否支持模拟?我不相信它支持。

我认为远程模拟包含了很多技术,其中一些可能没有记录。在不使用 Windows API 的情况下编写客户端应用程序以支持服务器模拟可能是一项非常艰巨的任务。最好的方法应该是继续在 Windows 上运行。但是如果你真的想让系统运行在 *nix 上,最好的方法应该是在 *nix 和 Windows 之间创建一个代理。以后不需要在 Windows 上运行的服务,就可以完全在 *nix 上运行。

【讨论】:

    猜你喜欢
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2011-10-29
    • 2012-04-12
    • 2017-02-03
    • 1970-01-01
    相关资源
    最近更新 更多