|
|
|
|
@ -35,6 +35,15 @@ class AuthHttpsPostSend implements SendPluginInterface |
|
|
|
|
*/ |
|
|
|
|
protected $password; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The path to the certificate authority certificate file to be used on the |
|
|
|
|
* SSL conection. If not provided, it is assumed that the SSL certificate |
|
|
|
|
* has been signed by a CA recognized as genuine. |
|
|
|
|
* |
|
|
|
|
* @var string |
|
|
|
|
*/ |
|
|
|
|
protected $cacert = null; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* {@inheritdoc} |
|
|
|
|
*/ |
|
|
|
|
@ -48,7 +57,8 @@ class AuthHttpsPostSend implements SendPluginInterface |
|
|
|
|
* |
|
|
|
|
* @param array $data |
|
|
|
|
* An array containing the values of the three required data members |
|
|
|
|
* using the data member name as key. |
|
|
|
|
* using the data member name as key, and optionally cacert to be used on |
|
|
|
|
* the data member with the same name. |
|
|
|
|
* |
|
|
|
|
* @throws SendException |
|
|
|
|
* When there is an error while instanciating the plugin. |
|
|
|
|
@ -60,6 +70,9 @@ class AuthHttpsPostSend implements SendPluginInterface |
|
|
|
|
} |
|
|
|
|
$this->$data_member_name = $data[$data_member_name]; |
|
|
|
|
} |
|
|
|
|
if (isset($data['cacert'])) { |
|
|
|
|
$this->cacert = $data['cacert']; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -81,14 +94,17 @@ class AuthHttpsPostSend implements SendPluginInterface |
|
|
|
|
$curl_handle = curl_init(); |
|
|
|
|
$post_data = array('file' => '@' . $blob_file); |
|
|
|
|
|
|
|
|
|
// @todo See if we need to manually add the CA certificate, or default |
|
|
|
|
// is enough. |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true); |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_URL, $this->uri); |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_POST, 1); |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $post_data); |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_USERPWD, sprintf('%s:%s', $this->user, $this->password)); |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, true); |
|
|
|
|
|
|
|
|
|
if (is_readable($this->cacert)) { |
|
|
|
|
curl_setopt($curl_handle, CURLOPT_CAINFO, $this->cacert); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$response = curl_exec($curl_handle); |
|
|
|
|
if ($response === false) { |
|
|
|
|
|