|
||||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||||
| Sledgeでの認証処理の実装 | ||||||||||||||
|
では、Webアプリケーションフレームワーク「Sledge」における認証機構の実装について具体的に見てみましょう。 |
||||||||||||||
| Sledgeの認証サポート | ||||||||||||||
|
Sledgeがフレームワークとしてサポートする認証機構はクラス単位でのAuthorization処理のみとなります。 例えば、ThinkIT::Pages::Rootは認証が不要だが、ThinkIT::Pages::Authzでは認証が必要であるという処理ができます。IDとパスワードが一致しているのかを確認する処理や、認証が必要な場合にどういうアクションを行なうのかという処理は独自に記述する必要があります。 |
||||||||||||||
| Authorizerクラスの実装 | ||||||||||||||
|
SledgeではAuthorizerクラスというAuthorization処理を行なうためのパーツが提供されています。Authorizerクラスはdispatch_XXXが呼びだされる前にそれを実行していいかどうかを判断します。 Sledgeのライフサイクルを表4に示します。認証処理の部分で認証に失敗した場合はログインページへのリダイレクトが行なわれ、処理がキャンセルされます。
表3:Sledgeのライフサイクル
※注2:
デザインパターンの世界ではNull Objectパターンと呼ばれる手法です。
独自の認証処理を行なうためにはSledge::Authorizer::Nullクラスを継承したAuthorizerクラスを実装します。Authorizerクラスではauthorizeメソッドのみを実装します。 一般的な処理としては、authorizeメソッド中ではセッションのあるキーに値が設定されているかをチェックします。値が設定されていない場合、未認証のクライアントと見なし、ログインフォームへのリダイレクト処理を行ないます。 |
||||||||||||||
package ThinkIT::Authorizer;
|
||||||||||||||
|
それでは、認証が必要なPagesクラスのcreate_authorizerメソッドで作成したAuthorizerクラスのインスタンスを生成してみます。 |
||||||||||||||
package ThinIT::Pages::Authz:
|
||||||||||||||
|
セッションにloginというキーでユーザ情報がセットされていないユーザは認証されていないと見なして、ログインフォームへリダイレクトさせています。 |
||||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||

