소스 검색

Add support for HTTP basic access authentication.

With Webdis it is possible to define some access control rules to allow or
disallow certain commands and one of the possible configurations is based on
plain old HTTP authentication.
Daniele Alessandri 13 년 전
부모
커밋
e5a85dfce8
1개의 변경된 파일13개의 추가작업 그리고 1개의 파일을 삭제
  1. 13 1
      lib/Predis/Network/WebdisConnection.php

+ 13 - 1
lib/Predis/Network/WebdisConnection.php

@@ -118,11 +118,23 @@ class WebdisConnection implements IConnectionSingle {
         }
     }
 
+    protected function getHttpOptions() {
+        $options = null;
+        if (isset($this->_parameters->user, $this->_parameters->pass)) {
+            $parameters = $this->_parameters;
+            $options = array(
+                'httpauth' => "{$parameters->user}:{$parameters->pass}",
+                'httpauthtype' => HTTP_AUTH_BASIC,
+            );
+        }
+        return $options;
+    }
+
     public function executeCommand(ICommand $command) {
         $commandId = $this->getCommandId($command);
         $arguments = implode('/', array_map('urlencode', $command->getArguments()));
 
-        $request = new HttpRequest($this->_webdisUrl, HttpRequest::METH_POST);
+        $request = new HttpRequest($this->_webdisUrl, HttpRequest::METH_POST, $this->getHttpOptions());
         $request->setBody("$commandId/$arguments.raw");
         $request->send();