私の理解では、RESTful サービスは完全にステートレスであるべきです。サービスを呼び出すたびに、正しく動作するために必要なすべての情報を渡す必要があります。
ただし、認証に関しては、特にセッション管理に関して、これがどのように機能するかについてかなり混乱しています。
基本認証を使用していますが、初めて要求を行うと、クライアントは挑戦を受けます (または、最初からヘッダーで認証情報を渡すことができます)。ただし、ユーザーが認証されると、セッションが存続している限り、サーバーはこのクライアントにチャレンジしなくなります。
これは、現在のユーザーがログアウトする (セッションを終了する) ためのメカニズムを提供する必要があることを意味します。
これを行う正しい方法は、構成を何らかの形で変更して、すべてのリクエストが認証のために挑戦されるように見えるでしょうが、これがセッション管理でどのように機能するかはわかりません.
- リクエストごとにセッションを手動で無効にする必要がありますか?
- または、リクエストが行われるたびにクライアントに挑戦するよう強制する方法はありますか?
REST を使用したセキュリティに関する多くの質問や、さまざまな認証モデルの実装方法に関する書籍を見つけることができます。しかし、セッション管理、ログイン、ログアウトの処理方法については、良い答えが見つかりませんでした。したがって、私は何か間違ったことをしている、またはここで重要なことを誤解しています。
これを適切に処理する方法についての考えやガイダンスをいただければ幸いです。
Tomcat 7 で Jersey 2.4 を使用しています。