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