1

ユーザーがログインしている場合にのみ、ホーム、バージョン情報、利用規約などを除くすべてのページを表示できるSpring MVC Webアプリケーションでは、認証を行うのに最適な場所はどこですか?フィルタレベル、コントローラレベル、またはその両方で?

コントローラーを作成しているので、次のような多くのコードを繰り返しているので、これを求めています。

if (currentUser.isAuthenticated()) // and possibly currentUser.hasPermission("some")
    // do logic and return proper page
else 
    // return to home or login page

認証が必要なすべてのページを何らかのURLパターンの下に置き、フィルターで保護(ユーザーが認証されていない場合はキャッチしてリダイレクト)する方がよいでしょうか?このようにして、コントローラーはよりクリーンになり、要求されたページを返すだけです。

この場合の適切な設計は何ですか?

4

3 に答える 3

1

インターセプターが必要です。数年前、認証とセッション処理[Spring MVC 3GlobalRequestMapping]に関して同様の質問がありました。これが私がそれを解決して実装した方法です [インターセプターを使用した認証セッション処理のためのGithubソース]

于 2012-12-25T16:22:12.487 に答える
0

スプリングセキュリティでスプリングアプリケーションを保護することをお勧めします。xmlでセキュリティを設定すると、アプリケーションのサーブレットフィルタが作成されます。

于 2012-12-26T23:19:02.213 に答える
0

そのプロジェクト自体を使用しない場合でも、SpringSecurityリファレンスガイドに記載されている概要に従ってください。Webアプリにセキュリティを実装する方法についての良いアドバイスです。

于 2012-12-25T16:29:17.447 に答える