私はエンタープライズレベルのJavaバックエンドアプリケーションを使用しています。トークンベースのユーザー認証を構築する必要があります。フロントエンドはPHPを利用し、SOAP経由でJavaバックエンドと通信します。GuavaのHashBiMapをエビクションで使用する方法はありますか?
私はGuavaのHashBiMapを使って問題を解決することを考えました。 UUIDトークンをキーとして生成し、静的なHashBiMapの値としてUserオブジェクトを格納できるので、私にとっては便利です。ユーザーが最初に正常にログインすると、ユーザーはHashBiMapに追加され、ログイン応答は生成されたUUIDトークンを返します。同じユーザーの後続のSOAP要求は、トークンのみを使用して行われます。
私が今直面している問題は、30分間の非アクティビティ後にこれらのトークンを追い出すことができるような、ある種の追い出しロジックが必要なことです。私の研究では、HashBiMapはGuavaのMapMakerのようにエビクションをネイティブにサポートしていないようです。
どのようにHashBiMapを使用し、非アクティブのために退去をサポートすることができるかについての推奨事項はありますか?このアプローチが理想的でない場合、私は他の戦略にもオープンしています。
アップデート:私は、私はマップ内のユーザーオブジェクトを検索し、ユーザーがマップ内に残っている場合は、その既存のトークンを取得できるようにしたいので、HashBiMapを使用する必要があると思う
。たとえば、ユーザーが30分のウィンドウ内でブラウザを閉じて数分後に再びログインして再度ログインする場合、ユーザーが既にマップに存在するかどうかを確認して、既存のトークンを返すことができるようにする必要があります技術的にはまだ有効です)。
あなたが説明していないことの1つは、なぜ 'UUID'マッピングに逆' User'が必要なのかです。あなたが記述したもののために 'User'マッピングだけで' UUID'が十分であるようです。 – ColinD
@ColinDあなたのコメントありがとう!上記の私の質問へのアップデートをご覧ください。 –