Spring Security
概要
Spring Securityは、ログイン認証とアクセス権限を管理する機能を提供します。
Web以外にも使用できるようですが、ここではWebを例にして見ていこうと思います。
このセクションの記事全体としては、SpringSecurity2~5のバージョンについて記述しています。
SpringSecurityのログイン認証の動作
Webの画面について、ログイン認証の動作は以下のシーケンス図を参照ください。
図は、今ログイン画面を開いていて、ID/PWを入力してpostしたところから開始しています。
ID/PWが正しかった場合、リダイレクトによりログイン成功後の画面であるtop.htmlに遷移します。
リダイレクトは、HTTPヘッダにリダイレクト要求が記述され、ブラウザによって自動的に遷移します。
認証失敗した場合も、リダイレクトにより認証失敗画面に遷移します。
このため、ログイン画面から入力されたIDは、リクエストパラメタとしては認証失敗画面のJSPに渡りません。
SpringSecurityではログイン後の画面にIDなどを渡したい場合、リクエストパラメタではなくセッションオブジェクトを使用して
渡すことになります。
SpringSecurityで情報をやりとりする場合はこれが基本になりますので、これも覚えておくとスムーズに機能を使っていけます。
補足
Spring Securityでは、認証の方式にさまざまな機能を用意しています。
・DBを使用してID/PWが正しいか確認する方式
・基本認証を使用する方式
・LDAPを使用する方式
・CASを使用する方式 (CASはシングルサインオンをするための仕組みのようです)
など
認可に対する補足は、WEBだけでなく、Javaのオブジェクトに対しても権限管理が可能という点です。
また、権限ロールについては階層を設定することができ、権限の設定を簡易にすることもできます。(RoleHierarchyImpl)
SpringSecurity3.0以上になると、さらに使用できる機能が増えます。
また、3.0以上になると設定や管理がさらにしやすくなるようです。
さらに詳細な内容については、以下の記事をご覧ください。
Created Date: 2010/01/02