私はSpring MVCを使用しており、構築する必要のあるカスタム認証/セキュリティシステムを持っています。
NOTE: I know of spring security, but my requirements were to do this in a custom way so please not looking for suggestions about using spring's security modules.
ユーザーがシステムにログインすると、セッション Cookie が作成されます。ユーザーがページにアクセスすると、インターセプターはその Cookie の存在を探し、mysql でセッション GUID を検索し、存在する場合はデータをロードしてリクエストの属性に保存します。
ユーザーがログインする必要があるページの場合、コントローラー レベルでアクセスを制限するにはどうすればよいですか?
インターセプターでこれを行うことができます:
if url.contains("projects/") ...
ProjectController でログインしているユーザーのみにアクセスを制限したいが、これは本当にやりたいことではありません。
しかし、コントローラーレベルで追加できる注釈を探しているか、ログインユーザーを必要とするすべてのコントローラーが継承する BaseController を何らかの方法で作成しています。
このようなものに対する私のオプションは何ですか?
ASP.NET で baseController を作成し、コントローラーにはイベント サイクルがあり、アクション実行前のイベントで、ユーザーがログインしているかどうかを確認しました。
spring mvc の提案をお探しですか?
アップデート
たとえば、ASP.NET には 2 つのメソッドがあり、1 つはコントローラーのアクション メソッドの直前に起動し、もう 1 つは直後に起動します。
Controller.OnActionExecuting
Controller.OnActionExecuted
http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.onactionexecuting.aspx
したがって、OnActionExecuting では、要求 URL を調べてから文字列比較を実行して特定のコントローラーであるかどうかを確認するのではなく、自分がどのコントローラーにいるのか、どのアクションがプログラムによって呼び出されようとしているのかを実際に正確に確認できます。 .
したがって、このイベントでは、Cookie やリクエスト属性などを簡単に確認できます。
これははるかに安定した方法ですが、春には似たようなものがありますか?