mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Added Auth Bearer to SnappyMail\HTTP\Request
This commit is contained in:
parent
785bde153e
commit
86f084e5a9
3 changed files with 21 additions and 10 deletions
|
|
@ -9,7 +9,8 @@ abstract class Request
|
||||||
* Authentication
|
* Authentication
|
||||||
*/
|
*/
|
||||||
AUTH_BASIC = 1,
|
AUTH_BASIC = 1,
|
||||||
AUTH_DIGEST = 2;
|
AUTH_DIGEST = 2,
|
||||||
|
AUTH_BEARER = 3;
|
||||||
|
|
||||||
public
|
public
|
||||||
$timeout = 5, // timeout in seconds.
|
$timeout = 5, // timeout in seconds.
|
||||||
|
|
|
||||||
|
|
@ -51,15 +51,20 @@ class CURL extends \SnappyMail\HTTP\Request
|
||||||
\curl_setopt($c, CURLOPT_HTTPHEADER, $extra_headers);
|
\curl_setopt($c, CURLOPT_HTTPHEADER, $extra_headers);
|
||||||
}
|
}
|
||||||
if ($this->auth['user'] && $this->auth['type']) {
|
if ($this->auth['user'] && $this->auth['type']) {
|
||||||
$auth = 0;
|
if ($this->auth['type'] & self::AUTH_BEARER ) {
|
||||||
if ($this->auth['type'] & self::AUTH_BASIC) {
|
\curl_setopt($c, CURLOPT_HTTPAUTH, CURLAUTH_BEARER);
|
||||||
$auth |= CURLAUTH_BASIC;
|
\curl_setopt($c, CURLOPT_XOAUTH2_BEARER, $this->auth['pass']);
|
||||||
|
} else {
|
||||||
|
$auth = 0;
|
||||||
|
if ($this->auth['type'] & self::AUTH_BASIC) {
|
||||||
|
$auth |= CURLAUTH_BASIC;
|
||||||
|
}
|
||||||
|
if ($this->auth['type'] & self::AUTH_DIGEST) {
|
||||||
|
$auth |= CURLAUTH_DIGEST;
|
||||||
|
}
|
||||||
|
\curl_setopt($c, CURLOPT_HTTPAUTH, $auth);
|
||||||
|
\curl_setopt($c, CURLOPT_USERPWD, $this->auth['user'] . ':' . $this->auth['pass']);
|
||||||
}
|
}
|
||||||
if ($this->auth['type'] & self::AUTH_DIGEST) {
|
|
||||||
$auth |= CURLAUTH_DIGEST;
|
|
||||||
}
|
|
||||||
\curl_setopt($c, CURLOPT_HTTPAUTH, $auth);
|
|
||||||
\curl_setopt($c, CURLOPT_USERPWD, $this->auth['user'] . ':' . $this->auth['pass']);
|
|
||||||
}
|
}
|
||||||
if ($this->proxy) {
|
if ($this->proxy) {
|
||||||
\curl_setopt($c, CURLOPT_PROXY, $this->proxy);
|
\curl_setopt($c, CURLOPT_PROXY, $this->proxy);
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ class Socket extends \SnappyMail\HTTP\Request
|
||||||
return $this->__doRequest($method, $request_url, $body, $extra_headers);
|
return $this->__doRequest($method, $request_url, $body, $extra_headers);
|
||||||
}
|
}
|
||||||
// Digest authentication
|
// Digest authentication
|
||||||
else if ($this->auth['type'] & self::AUTH_DIGEST && \preg_match("/WWW-Authenticate:\\s+Digest\\s+([^\\r\\n]*)/i", $data, $match)) {
|
if ($this->auth['type'] & self::AUTH_DIGEST && \preg_match("/WWW-Authenticate:\\s+Digest\\s+([^\\r\\n]*)/i", $data, $match)) {
|
||||||
$challenge = [];
|
$challenge = [];
|
||||||
foreach (\split(',', $match[1]) as $i) {
|
foreach (\split(',', $match[1]) as $i) {
|
||||||
$ii = \split('=', \trim($i), 2);
|
$ii = \split('=', \trim($i), 2);
|
||||||
|
|
@ -137,6 +137,11 @@ class Socket extends \SnappyMail\HTTP\Request
|
||||||
\fclose($sock);
|
\fclose($sock);
|
||||||
return $this->__doRequest($method, $request_url, $body, $extra_headers);
|
return $this->__doRequest($method, $request_url, $body, $extra_headers);
|
||||||
}
|
}
|
||||||
|
if ($this->auth['type'] & self::AUTH_BEARER) {
|
||||||
|
$extra_headers['Authorization'] = "Authorization: Bearer {$this->auth['pass']}";
|
||||||
|
\fclose($sock);
|
||||||
|
return $this->__doRequest($method, $request_url, $body, $extra_headers);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = \rtrim(\fgets($sock, 1024)); # read next line
|
$data = \rtrim(\fgets($sock, 1024)); # read next line
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue