Php/zend framework/basic認証
提供: 初心者エンジニアの簡易メモ
basic認証をかける
public function basicAction()
{
$resolver = new Zend_Auth_Adapter_Http_Resolver_File();
$resolver->setFile(dirname(__FILE__) . '/passwd.txt');
$adapterConfig = array(
"accept_schemes" => "basic", // 認証方法
"realm" => 'hoge', // BASIC認証ダイアログに表示される文字
"digest_domains" => "/auth", // 認証をかけたいドメイン又はパス
"nonce_time" => 36, // 生存時間
);
/**
* 認証するためのアダプタはHTTPを利用する
*/
$adapter = new Zend_Auth_Adapter_Http($adapterConfig);
$adapter->setBasicResolver($resolver)
->setRequest($this->getRequest())
->setResponse($this->getResponse());
$result = $adapter->authenticate();
if ($result->isValid()) {
die("ok");
}
print "ng";
}
- passwd.txt
test:hoge:fuga [ユーザ]:[realm]:[パス]
basic認証突破してhttpアクセスする
require_once 'Zend/Http/Client.php';
require_once 'Zend/Http/Client/Adapter/Exception.php';
// Http_Clientロード
$client = new Zend_Http_Client();
try {
$client->setUri($url);
$client->setAuth('test', 'fuga', Zend_Http_Client::AUTH_BASIC);
$client->setConfig(array(
'maxredirects' => 5,
'timeout' => 30
));
$params = array("id" => "hoge", "pass" => "hoge");
// 複数のパラメータを一度に追加します(POST
$client->setParameterPost($params);
// POST リクエストを実行します
$response = $client->request(Zend_Http_Client::POST);
print nl2br(print_r($response,1));
} catch (Zend_Http_Client_Adapter_Exception $e) {
// handle the error
error_log($e);
}
