Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。2Alinous-Coreに設定をしてみるレルムの設定ゾーンの設定フォーム認証のログインフォーム認証のログオフまとめAlinous-Coreに設定をしてみるAlinous-Coreおける認証機能は、「alinous-config.xml」に設定することで動作させることができます。実際には以下のような記述をします。</basic-auth></alinous-config>レルムの設定レルムとは、「ユーザーのID」「パスワード」「ロール」を管理するためのデータベースのことです。Alinous-Coreでは、どのテーブルのどのカラムをどのように割り当てるかを設定ファイルで決めることができ、<relm>タグの中に設定します。ロールを格納するためのカラムゾーンの設定ゾーンの設定は<zones>タグの中で行います。ログイン処理の成功時、確認時に利用するページ(省略化)サンプルの設定ファイルには、2つのゾーンが設定されています。1つのゾーン「/admin/」はフォーム認証で管理され、もう1つのゾーン「/admin/system/」は、ベーシック認証で管理されます。ゾーンのマッチングは、最長マッチングで処理されます。例を挙げると、「/admin/system/index.html」は、両方のゾーンに含まれますが、最長マッチのルールを適用すると「/admin/system/」のゾーンの方にマッチし、こちらのゾーンの認証ルールが適用されます。そのゾーンがBasic認証になるか、フォーム認証になるかは<form-auth>タグに含まれる2つの設定項目、loginとconfirmの有無によって判断されます。Basic認証の場合は、ログアウトがない代わりに、認証は設定ファイルのみで済ませることができます。フォーム認証の場合は認証の処理を自分で書く必要があります。フォーム認証のログインフォーム認証を設定した場合、そのゾーンに未認証でアクセスすると設定したログインフォームが表示されます。認証をかける時に、そのログインフォームがPOSTする先はconfirmで設定したページにします。この2つのページは、そのゾーンの中にありますが、認証のためのものなのでログインしていない状態でもアクセスすることができます。ここで、ログインすることとは、どういうことかを説明します。Alinous-Coreでは、ログインするということは、セッションの中にログイン情報を生成することを意味します。セッション情報をどのような形式で生成するかは以下のようになります。図1セッションのフォーマットまずは、ログインするためのフォームを作らなくてはなりません。ログインフォームは下図のようなものを作成します。ログインフォームは設定ファイルの<login>タグで指定したページを使います。図2ログインのためのフォームソースは次のようになります。value="login"></FORM>ここでは、Alinous-Coreのカスタムバリデータを利用しています。alns:validateという属性が最初のINPUTタグについていますが、この属性を指定することでカスタムのバリデーションをかけることができます。カスタムのバリデーションが指定された場合、このフォームからPOSTしたときにカスタムのチェック関数が呼ばれ、値が不正だと判断された場合には、再度このフォームに強制的に画面遷移します。このときに、<SPAN>タグの中身のエラーメッセージが表示されます。このフォームをPOSTする先の「confirm.html」のロジックに対応する「confirm.alns」を見てみましょう。0;}validate()という関数がありますが、カスタムのバリデーションのロジックはこの関数で実装します。この関数では、0を返したときは値が正常で、不正な値の場合は、不正な理由を文字列で返します。この不正な理由は、エラーメッセージを表示するための<SPAN>タグに設定されているalns:validate="custom"の部分と連動しています。バリデーションが正常に行われると、通常通り、「confirm.alns」の先頭からロジックが始まり、次に対応するデザインの「confirm.html」が呼ばれます。今回はreturn文で0以外の値を返しているのでそのページにフォワードされます。フォーム認証のログオフログオフの作業はごく簡単です、ログオフするには、ログインの時にセッションに焼き付けたユーザー情報をシステム関数Valuable.release($VAL)で開放します。0;まとめ今回は、Alinous-Coreの認証フレームワークについて説明をしました。このコードは、Alinous-Coreのサンプルプロジェクトの中にあるコードなので、サンプルプロジェクトを実際に動かしてみることで、Alinous-CoreのHTMLページの部品化機能との連動仕方や細かいところの動きまで分かっていただけるのではないかと思います。トモヒロ)Eclipse関連のソースコード自動生成プロダクトの開発者。INC.」で、O/RマッピングツールやJavaによるSQLパーサーを開発。現在、NetBeans.org(米国)のパートナー。最近は、Alinous-Coreを利用したパッケージビジネスを行っています。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。