私はWebアプリケーション用のSpring SecurityでSpring-MVCを使用しています。ユーザー登録ページと個人ユーザーパネルが含まれています。私はそれは、次のURLパターンと、現在設定している:MVCインターセプター対春のセキュリティフィルター対何か...?
whatever/myapp/login
ユーザログ開始登録whatever/myapp/register?step=1
で
whatever/myapp/account/**
プライベートエリアビュー(ページ)後、登録プロセスの完全ながらwhatever/myapp/pending
ビューが示されwhatever/myapp/blocked
アカウントブロックビューwhatever/myapp/register/retry
登録が失敗した場合、a基本的に
を再試行LLOW、以下これらのURLは、ユーザー認証を必要とすべきである、すなわち必要-ログイン:は
whatever/myapp/pending
(このページはにリダイレクトするように設定されたタイマを持ってい
whatever/myapp/account/**
(プライベートエリアページ) /アカウント/ホーム)whatever/myapp/register/retry
これは交流に非常に簡単ですSpringのセキュリティを使用してhieveします。ただし、Springセキュリティによるユーザー認証に関係なく、ユーザーの現在のアカウント状況(自分のDBに格納されている)に応じて、プライベートエリアページにアクセスできるかどうかを確認する必要があります。
具体的には、ユーザーがプライベートエリア(/account/**
)にアクセスしようとすると、状況に応じて適切なビュー(適切なページにリダイレクトされている)が表示されます。私はこれらのステータスが定義されています:
suspended
- 関連ビューenabled
を保留に - フルアクセスにdisabled
を許可する - ここretry_allowed
関係ありません - ビューblocked
に再試行に関する - に関し、アカウントブロックビュー
現在、私はMVCインターセプターの設定を/account/**
にして、ユーザーの状態をチェックし、適切なページにリダイレクトしますが、これは複数のコントローラー呼び出しのような奇妙な動作に直面しているため、 ..また、私は返信することをかなり確信していませんtrue
/false
preHandle()
方法の中に。インターセプタからのコードスニペットは次のとおりです。
です。
これは有効なアプローチですか?代替案はありますか?