私は現在持っています:
- 別のアプリケーションとして実行されるRESTAPI(Jersey)
- REST APIのクライアントであるGUIアプリケーション(JSF)
GUIアプリケーションからRESTAPIと通信するのが最善の方法だと思います。REST APIはステートレスですが、GUIアプリケーションはステートフルであり、すべてのRESTリクエストで認証情報(基本認証)を渡す必要があります。数百人の同時ユーザーをサポートする必要があるため、接続プール用にJerseyクライアントを構成する必要があります。
ジャージークライアントをApacheのHTTPクライアントで構成することにより、接続プールを処理できます。認証は、HTTPBasicAuthFilterを使用して処理できます。これにより、すべての要求で同じ資格情報が自動的に送信されます。
ただし、GUIアプリケーション全体に対して1つのクライアントを構成するのが最適なのか、セッションごとに新しいクライアントを作成するのが最適なのかはわかりません。
アプリケーションに1つのクライアントがある場合、接続プールは理にかなっていますが、すべての要求に正しい認証情報を設定する方法を見つける必要があります。HTTPBasicAuthFilterは、クレデンシャルが変更されないことを前提としています。これは、アプリの場合とは異なります。
セッションごとに新しいHTTPBasicAuthFilterを使用してクライアントを作成する場合、認証は簡単ですが、すべてのクライアントに独自のプールがあるため、接続プールのメリットはありません。
私がこれに遭遇した最初の人ではないかと思うので、他の人がこれをどのように解決したのか興味があります。
敬具、
グレン