2016-12-30 6 views
0

Windowsサーバー上で動作するレガシーアプリケーションをJavaで書き換えて置きたいと思っています。このアプリケーションは、Windows Impersonation APIを使用して、多数のWindowsサーバーに接続しています(別のサービスをインストールすることはできません。変更することは不可能です)。Windows偽装Java * nix

私は2つのライブラリJNAWaffleを用意しました。私の理解では、WaffleはJNAを使用し、JNAはJavaコードからWindows APIへの呼び出しを提供します。

私のJavaアプリケーションは明らかにwin32 apiを持っていないredhatサーバ上で動作します。 Impersonation APIの* nixバインディングはありますか?少なくとも私はそのバインディングを介してJNIを書くことを検討するかもしれません。

私はMonoとWineが異なるプラットフォームで同様の抽象概念を提供するので、方法があるべきだと思います。

+0

*「Windowsサーバー上で実行されているレガシーアプリケーションを、書き換えて置き換える」* - [あなたがすべきでないこと、その1](https://www.joelonsoftware.com/2000/04/06/things)あなたは決してdo-do-part-i /)する必要があります。 – IInspectable

+0

私は、偽装のUNIX同等物はseteuid関数だと考えています。 Javaからこれを呼び出すことができるかどうかはわかりません。しかし、実際には、名前付きパイプをWindowsサーバー、あるいはRPCまたはSchannelに開くかのように思えますか?これらはすべて「偽装API」の一部ではなく、偽装をサポートするさまざまな通信技術です。どの特定のテクノロジーを使用しようとしているのかを明確にしてください。 –

答えて

0

MonoまたはWineでサポート偽装を確認していますか?私はそれがサポートしているとは思わない。

私は遠隔偽装が多くの技術をカプセル化していると思いますが、その一部は文書化されていない可能性があります。 Windows APIを使用せずにサーバー偽装をサポートするためにクライアントアプリケーションを作成するのは非常に難しい作業です。最善の方法はWindows上で継続して実行する必要があります。しかし、本当に* nix上で動作するようにシステムを動かしたいのであれば、* nixとWindowsの間にプロキシを作成するのが最善の方法です。その後、Windows上で実行されているサービスが必要ない場合は、* nix上で完全に実行できます。