6

これはすでに質問されていることは知っていますが、機能させることができません。これが私が達成したいことです:

Spring Security 3.2 を使用して REST のようなサービスを保護しています。サーバー側のセッションはありません。基本認証は使用していません。これは、ユーザーのパスワードをクライアント側の Cookie に保存する必要があることを意味するためです。そうしないと、ユーザーはページを更新/変更するたびにログインする必要があります。トークンを保存することは、悪が少ないと思います。

  1. Web クライアント (ブラウザー、モバイル アプリ) が REST のような URL を呼び出して、ユーザー名とパスワードで "/login" にログインします。
  2. サーバーはユーザーを認証し、トークンをクライアントに送り返します
  3. クライアントはトークンを保存し、各 API 呼び出しでそれを http 要求ヘッダーに追加します。
  4. サーバーはトークンの有効性をチェックし、それに応じて応答を送信します

トークン生成の部分はまだ見ていません。私はそれが逆であることを知っていますが、トークン検証部分を最初に実装したかったのです。

カスタムファイラー(AbstractAuthenticationProcessingFilterの実装)を使用してこれを達成しようとしていますが、それについて間違った考えを持っているようです。

次のように定義します。

public TokenAuthenticationFilter() {
    super("/");
}

この正確な URL に対してのみフィルターをトリガーします。ワイルドカードを受け入れない AbstractAuthenticationProcessingFilter#requiresAuthentication を呼び出すいくつかのサンプル実装に固執しています。もちろん、私はその振る舞いを変えることができますが、これはどういうわけか私が間違った道を進んでいると思わせます.

また、カスタム AuthenticationProvider の実装も開始しました。多分それは正しいことですか?誰かが私に正しい方向へのプッシュを与えることができますか?

4

1 に答える 1