異なる場所にある 2 台の別々のマシンにデプロイされた Web サービスがあります。人が Java コードを使用して Web サービスを呼び出すために使用した URL を監視することは可能ですか? 3DNS URL が設定されており、すべてのクライアントがこの URL を使用して、URL の正しいポート番号でボックスに直接アクセスするのではなく、この URL を使用する必要があります。
ありがとうダミアン
異なる場所にある 2 台の別々のマシンにデプロイされた Web サービスがあります。人が Java コードを使用して Web サービスを呼び出すために使用した URL を監視することは可能ですか? 3DNS URL が設定されており、すべてのクライアントがこの URL を使用して、URL の正しいポート番号でボックスに直接アクセスするのではなく、この URL を使用する必要があります。
ありがとうダミアン
ご覧になりましたか:
@Resource
WebServiceContext wsContext;
これにより、Webサービスに送信された現在のメッセージのコンテキストが返されます。そこからユーザーのIPアドレスを取得することができました。
これは、Javaを使用していることを前提としています。
OWSM (Oracle Web Services Manager) のようなものを調べるかもしれません...オープンソースの代替品があるかもしれません。
OWSM は、処理して実際のサービス ホストにルーティングする仮想エンドポイントを作成します。このようにして、サービス ホストをファイアウォールの背後に隠し、OWSM ホストだけを外部から見ることができます。ユーザーが仮想エンドポイントに到達すると、OWSM はそれらを認証してバランス サービス ホストに渡すことができます。
別の方法として、実際のエンドポイントでサーブレット フィルターを使用することもできます。フィルターは、いくつかの異なることを行うことができます。単に HttpServletRequest から要求された URL をログに記録することも、正しい URL にリダイレクトすることもできます (ただし、それが Web サービスにどのような影響を与えるかはわかりません)。
フィルターを Web サービスと同じコンテキスト パスにマップするだけで済みます (たとえば、軸は /services/* を使用します)。