Auth_Container_Multiple -- 複数の Auth_Container に対する認証を行う
Multiple コンテナ
このコンテナは、複数の Auth_Container に対して順に認証を試みるコンテナです。
コンテナの getAuthData() が true を返すと、
Auth_Container_Multiple は true を返します。
コンテナの getAuthData() が false を返すと、
Auth_Container_Multiple
はリスト内の次のコンテナで処理を続けます。
ログインが成功するか、すべてのコンテナを処理し終えるまで処理を続けます。
getAuthData() でエラーが発生した場合は、
Auth_Container_Multiple
はそれ以降の処理をせず、そこでエラーを返します。
Auth コンストラクタ()
へのストレージ固有の引数は、コンテナ設定の配列で指定します。
コンテナ設定は、以下のようなオプションで指定します。
表 30-1使用可能なオプション
| オプション | データ型 | デフォルト値 | 説明 |
|---|
|
"type"
|
string
|
""
|
インスタンスを作成するコンテナの型。これは、
Auth コンストラクタ()
の最初の引数で指定するものと同じ値です。
|
|
"options"
|
array
|
array()
|
そのコンテナが必要とするオプションの配列。
|
例 30-1Auth_Container_Multiple の使用例 require_once "Auth.php";
require_once 'Log.php';
require_once 'Log/observer.php';
// ログイン画面を表示するコールバック関数
function loginFunction($username = null, $status = null, &$auth = null)
{
/*
* HTML 出力を変更し、作成するアプリケーションに
* あわせるようにします
*/
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
echo "ユーザ名: <input type=\"text\" name=\"username\"><br/>";
echo "パスワード: <input type=\"password\" name=\"password\"><br/>";
echo "<input type=\"submit\">";
echo "</form>";
}
class Auth_Log_Observer extends Log_observer {
var $messages = array();
function notify($event) {
$this->messages[] = $event;
}
}
$options = array(
'enableLogging' => true,
array(
'type' => 'Array',
'options' => array(
'cryptType' => 'md5',
'users' => array(
'guest' => md5('password'),
),
),
),
array(
'type' => 'Array',
'options' => array(
'cryptType' => 'md5',
'users' => array(
'admin' => md5('password'),
),
),
),
);
$a = new Auth("Multiple", $options, "loginFunction");
$infoObserver = new Auth_Log_Observer(PEAR_LOG_INFO);
$a->attachLogObserver($infoObserver);
$debugObserver = new Auth_Log_Observer(PEAR_LOG_DEBUG);
$a->attachLogObserver($debugObserver);
$a->start();
if ($a->checkAuth()) {
/*
* サイトに出力する内容をここに書きます
*/
print "認証に成功しました。<br/>";
}
print '<h3>ログ出力</h3>'
.'<b>PEAR_LOG_INFO レベルのメッセージ</b><br/>';
foreach ($infoObserver->messages as $event) {
print $event['priority'].': '.$event['message'].'<br/>';
}
print '<br/>'
.'<b>PEAR_LOG_DEBUG レベルのメッセージ</b><br/>';
foreach ($debugObserver->messages as $event) {
print $event['priority'].': '.$event['message'].'<br/>';
}
print '<br/>'; |
|
注意
このコンテナは、バージョン 1.5.0 以降でのみ使用可能です。
大阪 老人ホーム 京都 老人ホーム 兵庫 老人ホーム 和歌山 老人ホーム 滋賀 老人ホーム
奈良 老人ホーム 東京 老人ホーム 神奈川 老人ホーム 千葉 老人ホーム 埼玉 老人ホーム
老人ホーム 断熱塗料 表札
- 大阪 人妻

大阪の人妻デリヘル、ヘルス、ホテヘルの紹介サイト
- デリヘル

全国の地域別のデリヘル紹介サイト
- パソコン

パソコン日記ホームページの紹介