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); }